Ticket #4115: lexicalCastNoTypeInfoFix.patch
File lexicalCastNoTypeInfoFix.patch, 2.4 KB (added by , 13 years ago) |
---|
-
config/stdlib/dinkumware.hpp
86 86 # define BOOST_NO_STD_LOCALE 87 87 #endif 88 88 89 #if defined(_HAS_EXCEPTIONS) && (_HAS_EXCEPTIONS == 0) 90 # define BOOST_NO_STD_TYPEINFO 91 #endif 92 89 93 // C++0x headers implemented in 520 (as shipped by Microsoft) 90 94 // 91 95 #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520 -
lexical_cast.hpp
52 52 throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))) 53 53 #endif 54 54 55 // Define BOOST_LCAST_STD_NS to the namespace that contains type_info. 56 #ifdef BOOST_NO_STD_TYPEINFO 57 // Embedded VC++ does not have type_info in namespace std 58 # define BOOST_LCAST_STD_NS 59 #else 60 # define BOOST_LCAST_STD_NS std 61 #endif 62 55 63 namespace boost 56 64 { 57 65 // exception used to indicate runtime lexical_cast failure … … 74 82 } 75 83 76 84 bad_lexical_cast( 77 const std::type_info &source_type_arg,78 const std::type_info &target_type_arg) :85 const BOOST_LCAST_STD_NS::type_info &source_type_arg, 86 const BOOST_LCAST_STD_NS::type_info &target_type_arg) : 79 87 source(&source_type_arg), target(&target_type_arg) 80 88 { 81 89 } 82 90 83 const std::type_info &source_type() const91 const BOOST_LCAST_STD_NS::type_info &source_type() const 84 92 { 85 93 return *source; 86 94 } 87 const std::type_info &target_type() const95 const BOOST_LCAST_STD_NS::type_info &target_type() const 88 96 { 89 97 return *target; 90 98 } … … 98 106 { 99 107 } 100 108 private: 101 const std::type_info *source;102 const std::type_info *target;109 const BOOST_LCAST_STD_NS::type_info *source; 110 const BOOST_LCAST_STD_NS::type_info *target; 103 111 }; 104 112 105 113 namespace detail // selectors for choosing stream character type … … 1149 1157 1150 1158 Target result; 1151 1159 if(!(interpreter << arg && interpreter >> result)) 1152 BOOST_LCAST_THROW_BAD_CAST(Source, Target);1160 BOOST_LCAST_THROW_BAD_CAST(Source, Target); 1153 1161 return result; 1154 1162 } 1155 1163 #if (defined _MSC_VER)