|
ferencd@0
|
1 #if defined(HAS_CXX0X_CSTDINT_H)
|
|
ferencd@0
|
2 #include <cstdint>
|
|
ferencd@0
|
3 #endif
|
|
ferencd@0
|
4
|
|
ferencd@0
|
5 #include <sys/types.h>
|
|
ferencd@0
|
6
|
|
ferencd@0
|
7 struct thing {
|
|
ferencd@0
|
8 unsigned char one;
|
|
ferencd@0
|
9 #if defined(HAS_CXX0X_CSTDINT_H)
|
|
ferencd@0
|
10 uint32_t four;
|
|
ferencd@0
|
11 #endif
|
|
ferencd@0
|
12 #if defined(HAS_CXX0X_LONG_LONG)
|
|
ferencd@0
|
13 long long eight;
|
|
ferencd@0
|
14 #endif
|
|
ferencd@0
|
15 };
|
|
ferencd@0
|
16
|
|
ferencd@0
|
17 #include <stdio.h>
|
|
ferencd@0
|
18
|
|
ferencd@0
|
19 int main()
|
|
ferencd@0
|
20 {
|
|
ferencd@0
|
21 #if defined (HAS_CXX0X_NULLPTR)
|
|
ferencd@0
|
22 void *nix = nullptr;
|
|
ferencd@0
|
23 #else /* HAS_CXX0X_NULLPTR */
|
|
ferencd@0
|
24 void *nix = 0;
|
|
ferencd@0
|
25 #endif /* HAS_CXX0X_NULLPTR */
|
|
ferencd@0
|
26
|
|
ferencd@0
|
27 #if defined(HAS_CXX0X_STATIC_ASSERT)
|
|
ferencd@0
|
28 static_assert(1 < 42, "Your C++ compiler is b0rked");
|
|
ferencd@0
|
29 #endif /* HAS_CXX0X_STATIC_ASSERT */
|
|
ferencd@0
|
30
|
|
ferencd@0
|
31 #if defined(HAS_CXX0X_FUNC)
|
|
ferencd@0
|
32 const char *funcname = __func__;
|
|
ferencd@0
|
33 printf("the name of main() function is: %s\n", funcname);
|
|
ferencd@0
|
34 #endif /* HAS_CXX0X_FUNC */
|
|
ferencd@0
|
35
|
|
ferencd@0
|
36 #if defined(HAS_CXX0X_SIZEOF_MEMBER)
|
|
ferencd@0
|
37 size_t onesize = sizeof(thing::one);
|
|
ferencd@0
|
38 #if defined(HAS_CXX0X_STATIC_ASSERT)
|
|
ferencd@0
|
39 static_assert(sizeof(thing::one) == 1, "Your char is not one byte long");
|
|
ferencd@0
|
40 #endif /* HAS_CXX0X_STATIC_ASSERT */
|
|
ferencd@0
|
41
|
|
ferencd@0
|
42 #if defined(HAS_CXX0X_CSTDINT_H)
|
|
ferencd@0
|
43 size_t foursize = sizeof(thing::four);
|
|
ferencd@0
|
44 #if defined(HAS_CXX0X_STATIC_ASSERT)
|
|
ferencd@0
|
45 static_assert(sizeof(thing::four) == 4, "Your uint32_t is not 32 bit long");
|
|
ferencd@0
|
46 #endif /* HAS_CXX0X_STATIC_ASSERT */
|
|
ferencd@0
|
47 #endif /* HAS_CXX0X_CSTDINT_H */
|
|
ferencd@0
|
48 #if defined(HAS_CXX0X_LONG_LONG)
|
|
ferencd@0
|
49 size_t eightsize = sizeof(thing::eight);
|
|
ferencd@0
|
50 #if defined(HAS_CXX0X_STATIC_ASSERT)
|
|
ferencd@0
|
51 static_assert(sizeof(thing::eight) == 8, "Your long long is not 64 bit long");
|
|
ferencd@0
|
52 #endif /* HAS_CXX0X_STATIC_ASSERT */
|
|
ferencd@0
|
53 #endif /* HAS_CXX0X_LONG_LONG */
|
|
ferencd@0
|
54 #endif /* HAS_CXX0X_SIZEOF_MEMBER */
|
|
ferencd@0
|
55
|
|
ferencd@0
|
56 return 0;
|
|
ferencd@0
|
57 }
|