Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. template< typename T >
  2. void function1( const T &t )
  3. {
  4. function2( boost::lexical_cast<std::string>(t) );
  5. }
  6.  
  7. void function1( const std::string &t )
  8. {
  9. function2( t );
  10. }
  11.  
  12. template< typename T >
  13. void function1( const T &t )
  14. {
  15. function1( boost::lexical_cast<std::string>(t) );
  16. }
  17.  
  18. template <typename Target, typename Source>
  19. Target lexical_cast(const Source &arg)
  20. {
  21. static if( is_character_type_to_character_type<Target, src> ||
  22. is_char_array_to_stdstring<Target, src> ||
  23. is_same_and_stdstring<Target, src> )
  24. // ^-- optimization for std::string to std::string and similar stuff
  25. {
  26. return arg;
  27. }
  28. else
  29. {
  30. /* some complicated stuff */
  31. }
  32. }
  33.  
  34. typedef BOOST_DEDUCED_TYPENAME ::boost::type_traits::ice_or<
  35. ::boost::detail::is_xchar_to_xchar<Target, src >::value,
  36. ::boost::detail::is_char_array_to_stdstring<Target, src >::value,
  37. ::boost::type_traits::ice_and<
  38. ::boost::is_same<Target, src >::value,
  39. ::boost::detail::is_stdstring<Target >::value
  40. >::value
  41. > shall_we_copy_t;
  42.  
  43. typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
  44. shall_we_copy_t::value,
  45. ::boost::detail::lexical_cast_copy<src >,
  46. BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
  47. shall_we_copy_with_dynamic_check_t::value,
  48. ::boost::detail::lexical_cast_dynamic_num<Target, src >,
  49. ::boost::detail::lexical_cast_do_cast<Target, src >
  50. >::type
  51. >::type caster_type;
  52.  
  53. return caster_type::lexical_cast_impl(arg);
  54.  
  55. template <typename Source>
  56. struct lexical_cast_copy
  57. {
  58. static inline Source lexical_cast_impl(const Source &arg)
  59. {
  60. return arg;
  61. }
  62. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement