Хронологические литералы в VS2015

Следующий код дает мне ошибку времени компиляции:

#include <chrono>

int main() {
    auto day = 24h;
    return 0;
}

Ошибка C3688: неверный литеральный суффикс 'h'; буквальный оператор или шаблон буквального оператора 'operator ""h "не найден.

Я пытаюсь это сделать в Visual Studio 2015 Update 1, которая в соответствии с этим должна работать, так что же происходит?

1 ответ

Решение

Литералы не находятся в глобальном пространстве имен. Добавь это:

using namespace std::chrono_literals;

В зависимости от ситуации вы также можете рассмотреть возможность использования:

using std::chrono::operator""h;

вместо того, чтобы импортировать каждое имя из этого пространства имен, если вам нужен более точный контроль.

Другие вопросы по тегам