Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template< typename T >
- void function1( const T &t )
- {
- function2( boost::lexical_cast<std::string>(t) );
- }
- void function1( const std::string &t )
- {
- function2( t );
- }
- template< typename T >
- void function1( const T &t )
- {
- function1( boost::lexical_cast<std::string>(t) );
- }
- template <typename Target, typename Source>
- Target lexical_cast(const Source &arg)
- {
- static if( is_character_type_to_character_type<Target, src> ||
- is_char_array_to_stdstring<Target, src> ||
- is_same_and_stdstring<Target, src> )
- // ^-- optimization for std::string to std::string and similar stuff
- {
- return arg;
- }
- else
- {
- /* some complicated stuff */
- }
- }
- typedef BOOST_DEDUCED_TYPENAME ::boost::type_traits::ice_or<
- ::boost::detail::is_xchar_to_xchar<Target, src >::value,
- ::boost::detail::is_char_array_to_stdstring<Target, src >::value,
- ::boost::type_traits::ice_and<
- ::boost::is_same<Target, src >::value,
- ::boost::detail::is_stdstring<Target >::value
- >::value
- > shall_we_copy_t;
- typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
- shall_we_copy_t::value,
- ::boost::detail::lexical_cast_copy<src >,
- BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
- shall_we_copy_with_dynamic_check_t::value,
- ::boost::detail::lexical_cast_dynamic_num<Target, src >,
- ::boost::detail::lexical_cast_do_cast<Target, src >
- >::type
- >::type caster_type;
- return caster_type::lexical_cast_impl(arg);
- template <typename Source>
- struct lexical_cast_copy
- {
- static inline Source lexical_cast_impl(const Source &arg)
- {
- return arg;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement