53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
/*
|
|
(c) 2014-2016 Glen Joseph Fernandes
|
|
<glenjofe -at- gmail.com>
|
|
|
|
Distributed under the Boost Software
|
|
License, Version 1.0.
|
|
http://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(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(__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> { };
|
|
|
|
#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
|