123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- Copyright 2014-2016 Glen Joseph Fernandes
- (glenjofe@gmail.com)
- Distributed under the Boost Software License, Version 1.0.
- (http://www.boost.org/LICENSE_1_0.txt)
- */
- #ifndef BOOST_ALIGN_ALIGNMENT_OF_HPP
- #define BOOST_ALIGN_ALIGNMENT_OF_HPP
- #include <boost/align/detail/element_type.hpp>
- #include <boost/align/alignment_of_forward.hpp>
- #if defined(_MSC_VER) && defined(__clang__)
- #include <boost/align/detail/alignment_of_cxx11.hpp>
- #elif defined(BOOST_MSVC)
- #include <boost/align/detail/alignment_of_msvc.hpp>
- #elif defined(__GNUC__) && defined(__unix__) && !defined(__LP64__)
- #include <boost/align/detail/alignment_of.hpp>
- #elif defined(BOOST_CLANG) && !defined(__x86_64__)
- #include <boost/align/detail/alignment_of.hpp>
- #elif !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
- #include <boost/align/detail/alignment_of_cxx11.hpp>
- #elif defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
- #include <boost/align/detail/alignment_of_gcc.hpp>
- #elif defined(BOOST_CODEGEARC)
- #include <boost/align/detail/alignment_of_codegear.hpp>
- #elif defined(BOOST_CLANG)
- #include <boost/align/detail/alignment_of_clang.hpp>
- #elif __GNUC__ > 4
- #include <boost/align/detail/alignment_of_gcc.hpp>
- #elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
- #include <boost/align/detail/alignment_of_gcc.hpp>
- #else
- #include <boost/align/detail/alignment_of.hpp>
- #endif
- namespace boost {
- namespace alignment {
- template<class T>
- struct alignment_of
- : detail::alignment_of<typename
- detail::element_type<T>::type>::type { };
- #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
- template<class T>
- constexpr std::size_t alignment_of_v = alignment_of<T>::value;
- #endif
- } /* alignment */
- } /* boost */
- #endif
|