Chris@102
|
1 /*
|
Chris@102
|
2 (c) 2014 Glen Joseph Fernandes
|
Chris@102
|
3 glenjofe at gmail dot com
|
Chris@102
|
4
|
Chris@102
|
5 Distributed under the Boost Software
|
Chris@102
|
6 License, Version 1.0.
|
Chris@102
|
7 http://boost.org/LICENSE_1_0.txt
|
Chris@102
|
8 */
|
Chris@102
|
9 #ifndef BOOST_ALIGN_ALIGNMENT_OF_HPP
|
Chris@102
|
10 #define BOOST_ALIGN_ALIGNMENT_OF_HPP
|
Chris@102
|
11
|
Chris@102
|
12 #include <boost/config.hpp>
|
Chris@102
|
13 #include <boost/align/alignment_of_forward.hpp>
|
Chris@102
|
14 #include <boost/align/detail/remove_traits.hpp>
|
Chris@102
|
15
|
Chris@102
|
16 #if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
|
Chris@102
|
17 #include <boost/align/detail/alignment_of_cxx11.hpp>
|
Chris@102
|
18 #elif defined(BOOST_MSVC)
|
Chris@102
|
19 #include <boost/align/detail/alignment_of_msvc.hpp>
|
Chris@102
|
20 #elif defined(BOOST_CLANG)
|
Chris@102
|
21 #include <boost/align/detail/alignment_of_clang.hpp>
|
Chris@102
|
22 #elif defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
|
Chris@102
|
23 #include <boost/align/detail/alignment_of_gcc.hpp>
|
Chris@102
|
24 #elif defined(__CODEGEARC__)
|
Chris@102
|
25 #include <boost/align/detail/alignment_of_codegear.hpp>
|
Chris@102
|
26 #elif defined(__GNUC__) && defined(__unix__) && !defined(__LP64__)
|
Chris@102
|
27 #include <boost/align/detail/alignment_of.hpp>
|
Chris@102
|
28 #elif __GNUC__ > 4
|
Chris@102
|
29 #include <boost/align/detail/alignment_of_gcc.hpp>
|
Chris@102
|
30 #elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
|
Chris@102
|
31 #include <boost/align/detail/alignment_of_gcc.hpp>
|
Chris@102
|
32 #else
|
Chris@102
|
33 #include <boost/align/detail/alignment_of.hpp>
|
Chris@102
|
34 #endif
|
Chris@102
|
35
|
Chris@102
|
36 namespace boost {
|
Chris@102
|
37 namespace alignment {
|
Chris@102
|
38 template<class T>
|
Chris@102
|
39 struct alignment_of
|
Chris@102
|
40 : detail::alignment_of<typename
|
Chris@102
|
41 detail::remove_cv<typename
|
Chris@102
|
42 detail::remove_all_extents<typename
|
Chris@102
|
43 detail::remove_reference<T>::
|
Chris@102
|
44 type>::type>::type>::type {
|
Chris@102
|
45 };
|
Chris@102
|
46 }
|
Chris@102
|
47 }
|
Chris@102
|
48
|
Chris@102
|
49 #endif
|