Search code examples
c++visual-studiovisual-studio-2015user-defined-literals

chrono literals in VS2015


The following code gives me a compile time error:

#include <chrono>

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

Error C3688: invalid literal suffix 'h'; literal operator or literal operator template 'operator ""h' not found.

I'm trying this on Visual Studio 2015 Update 1, which according to this should work, so what's going on?


Solution

  • The literals aren't in the global namespace. Add this:

    using namespace std::chrono_literals;
    

    Depending on the situation, you might also consider using:

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

    instead of importing every name from that namespace if you need more fine grained control.