5

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?

Voo
  • 29,040
  • 11
  • 82
  • 156

1 Answers1

13

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.

Ivan_a_bit_Ukrainivan
  • 808
  • 1
  • 10
  • 27
Kerrek SB
  • 464,522
  • 92
  • 875
  • 1,084