12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- Copyright Rene Ferdinand Rivera Morell 2020-2021
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
- */
- #ifndef BOOST_PREDEF_OTHER_WORD_SIZE_H
- #define BOOST_PREDEF_OTHER_WORD_SIZE_H
- #include <boost/predef/architecture.h>
- #include <boost/predef/version_number.h>
- #include <boost/predef/make.h>
- /* tag::reference[]
- = `BOOST_ARCH_WORD_BITS`
- Detects the native word size, in bits, for the current architecture. There are
- two types of macros for this detection:
- * `BOOST_ARCH_WORD_BITS`, gives the number of word size bits
- (16, 32, 64).
- * `BOOST_ARCH_WORD_BITS_16`, `BOOST_ARCH_WORD_BITS_32`, and
- `BOOST_ARCH_WORD_BITS_64`, indicate when the given word size is
- detected.
- They allow for both single checks and direct use of the size in code.
- NOTE: The word size is determined manually on each architecture. Hence use of
- the `wordsize.h` header will also include all the architecture headers.
- */ // end::reference[]
- #if !defined(BOOST_ARCH_WORD_BITS_64)
- # define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
- #elif !defined(BOOST_ARCH_WORD_BITS)
- # define BOOST_ARCH_WORD_BITS 64
- #endif
- #if !defined(BOOST_ARCH_WORD_BITS_32)
- # define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
- #elif !defined(BOOST_ARCH_WORD_BITS)
- # define BOOST_ARCH_WORD_BITS 32
- #endif
- #if !defined(BOOST_ARCH_WORD_BITS_16)
- # define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE
- #elif !defined(BOOST_ARCH_WORD_BITS)
- # define BOOST_ARCH_WORD_BITS 16
- #endif
- #if !defined(BOOST_ARCH_WORD_BITS)
- # define BOOST_ARCH_WORD_BITS 0
- #endif
- #define BOOST_ARCH_WORD_BITS_NAME "Word Bits"
- #define BOOST_ARCH_WORD_BITS_16_NAME "16-bit Word Size"
- #define BOOST_ARCH_WORD_BITS_32_NAME "32-bit Word Size"
- #define BOOST_ARCH_WORD_BITS_64_NAME "64-bit Word Size"
- #endif
- #include <boost/predef/detail/test.h>
- BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS,BOOST_ARCH_WORD_BITS_NAME)
- #include <boost/predef/detail/test.h>
- BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_16,BOOST_ARCH_WORD_BITS_16_NAME)
- #include <boost/predef/detail/test.h>
- BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_32,BOOST_ARCH_WORD_BITS_32_NAME)
- #include <boost/predef/detail/test.h>
- BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_64,BOOST_ARCH_WORD_BITS_64_NAME)
|