cxx1y-user-defined-literals.cpp revision 4ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5
1// RUN: %clang_cc1 -std=c++1y %s -include %s -verify
2
3#ifndef INCLUDED
4#define INCLUDED
5
6#pragma clang system_header
7namespace std {
8  using size_t = decltype(sizeof(0));
9
10  struct duration {};
11  duration operator"" ns(unsigned long long);
12  duration operator"" us(unsigned long long);
13  duration operator"" ms(unsigned long long);
14  duration operator"" s(unsigned long long);
15  duration operator"" min(unsigned long long);
16  duration operator"" h(unsigned long long);
17
18  struct string {};
19  string operator"" s(const char*, size_t);
20}
21
22#else
23
24using namespace std;
25duration a = 1ns, b = 1us, c = 1ms, d = 1s, e = 1min, f = 1h;
26string s = "foo"s;
27char error = 'x's; // expected-error {{invalid suffix}} expected-error {{expected ';'}}
28
29int _1z = 1z; // expected-error {{invalid suffix}}
30int _1b = 1b; // expected-error {{invalid digit}}
31
32#endif
33