annotate 3rdparty/vmime/cmake/cmake-cxx11/Tests/Module/CXX11Features/cxx11features.cxx @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
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 }