File: itkCheckHasCPP11Alignas.cxx

package info (click to toggle)
insighttoolkit4 4.10.1-dfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 416,780 kB
  • ctags: 104,347
  • sloc: cpp: 553,142; ansic: 142,389; fortran: 34,788; python: 16,392; lisp: 2,070; sh: 1,862; tcl: 993; java: 362; perl: 200; makefile: 111; csh: 81; pascal: 69; xml: 19; ruby: 10
file content (27 lines) | stat: -rw-r--r-- 483 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//
// Check if the compiler support the C++11 alignas specifier
//

struct A
{
  char a;
};


struct alignas(64) B
{
  char a;
};

// This structure will generate a compiler error if the template
// argument is false
template<bool t> struct OnlyTrue;
template<> struct OnlyTrue<true> { static ITK_CONSTEXPR bool Result = true; };


int main(void)
{
  typedef A AlignedA alignas(64);
  return OnlyTrue<alignof( AlignedA ) == 64>::Result
    && OnlyTrue<alignof( B ) == 64>::Result;
}