File indexing completed on 2025-01-18 09:50:38
0001
0002
0003
0004
0005 #ifndef STRING_LITERAL_DWA2002629_HPP
0006 # define STRING_LITERAL_DWA2002629_HPP
0007
0008 # include <cstddef>
0009 # include <boost/type.hpp>
0010 # include <boost/python/detail/type_traits.hpp>
0011 # include <boost/mpl/bool.hpp>
0012 # include <boost/detail/workaround.hpp>
0013
0014 namespace boost { namespace python { namespace detail {
0015
0016 template <class T>
0017 struct is_string_literal : mpl::false_
0018 {
0019 };
0020
0021 # if !defined(__MWERKS__) || __MWERKS__ > 0x2407
0022 template <std::size_t n>
0023 struct is_string_literal<char const[n]> : mpl::true_
0024 {
0025 };
0026
0027 # if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590040)) \
0028 || (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730)
0029
0030
0031 template <>
0032 struct is_string_literal<char* const> : mpl::true_
0033 {
0034 };
0035 # endif
0036
0037 # else
0038
0039
0040 template <class T, std::size_t n>
0041 struct is_string_literal<T[n]>
0042 : is_same<T, char const>
0043 {
0044 };
0045 # endif
0046
0047 }}}
0048
0049 #endif