is_primitive.h
上传用户:kx_jwh
上传日期:2021-09-03
资源大小:76k
文件大小:1k
源码类别:

STL

开发平台:

Visual C++

  1. /* vim: set tabstop=4 : */
  2. #ifndef __febird_io_is_primitive_h__
  3. #define __febird_io_var_int_h__
  4. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  5. # pragma once
  6. #endif
  7. #include <boost/cstdint.hpp>
  8. #include <string>
  9. // should be the last #include
  10. #include <boost/type_traits/detail/bool_trait_def.hpp>
  11. namespace febird {
  12. BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_primitive,T,false)
  13. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, char, true)
  14. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned char, true)
  15. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, int, true)
  16. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, long, true)
  17. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, short, true)
  18. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned int, true)
  19. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned long, true)
  20. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned short, true)
  21. #if defined(BOOST_HAS_LONG_LONG)
  22. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, long long, true)
  23. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned long long, true)
  24. #elif defined(BOOST_HAS_MS_INT64)
  25. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, __int64, true)
  26. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, unsigned __int64, true)
  27. #endif
  28. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, std::string, true)
  29. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_primitive, std::wstring, true)
  30. } // namespace febird
  31. #include "boost/type_traits/detail/bool_trait_undef.hpp"
  32. #endif // __febird_io_var_int_h__