Typedef, или псевдоним, или что-то для std :: chrono :: duration_cast для облегчения ввода - PullRequest
1 голос
/ 26 февраля 2020

Это, скорее всего, простой вопрос, но я не знаю, как это сделать. Как можно использовать std::chrono::duration_cast<std::chrono::microseconds>() с typedef, или std::function, или с чем-то еще? Я не могу использовать using std::chrono, я пытался создать указатель на функцию, но когда я просмотрел cppreference , у меня кружится голова, плюс все коды, которые я вижу, используют auto, что не ' t help.

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Есть много способов сделать это. это зависит от того, чего именно вы пытаетесь достичь.

Один из подходов к этому - определить собственную вспомогательную функцию (в собственном пространстве имен или глобальном):

template <typename T>
std::chrono::microseconds asMicroseconds(T duration)
{
    return std::chrono::duration_cast<std::chrono::microseconds>(duration);
}
1 голос
/ 26 февраля 2020

Не знаю, если это то, что вы хотели, но:

    auto asMicroseconds = [](auto x){return std::chrono::duration_cast<std::chrono::microseconds>(x);};

Кажется, работает нормально

...