https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69905
aaron.mcdaid at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aaron.mcdaid at gmail dot com --- Comment #3 from aaron.mcdaid at gmail dot com --- I think this could be fixed by defining the missing overload of `operator""s` for `unsigned long long`. As I understand it, the standard requires two overloads, `long double` and `unsigned long long`. However, only the latter is present in gcc-6.2.0. The `chrono` file is missing `unsigned unsigned long`, but has the following instead: template <char... _Digits> constexpr chrono::seconds operator""s() { return __check_overflow<chrono::seconds, _Digits...>(); This appears to be failing to interpret the separator correctly. (Apologies if I have misinterpreted, this is my first time looking in the chrono header!)