Blame view

3rdparty/boost_1_81_0/boost/convert/lexical_cast.hpp 1.21 KB
63e88f80   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  // Copyright (c) 2009-2020 Vladimir Batov.
  // Use, modification and distribution are subject to the Boost Software License,
  // Version 1.0. See http://www.boost.org/LICENSE_1_0.txt.
  
  #ifndef BOOST_CONVERT_LEXICAL_CAST_HPP
  #define BOOST_CONVERT_LEXICAL_CAST_HPP
  
  #include <boost/lexical_cast.hpp>
  
  namespace boost { namespace cnv { struct lexical_cast; }}
  
  /// @brief boost::lexical_cast-based converter
  /// @details The purpose of the converter is to
  /// * Make use of the boost::lexical_cast functionality and performance that many people have become
  /// accustomed to and comfortable with;
  /// * Demonstrate how existing independent conversion/transformation-related facilities might be
  //  incorporated in to the Boost.Convert framework.
  ///
  /// The converter can easily replace boost::lexical_cast, adding flexibility and convenience.
  
  struct boost::cnv::lexical_cast
  {
      template<typename TypeOut, typename TypeIn>
      void
      operator()(TypeIn const& value_in, boost::optional<TypeOut>& result_out) const
      {
          try
          {
              result_out = boost::lexical_cast<TypeOut>(value_in);
          }
          catch (boost::bad_lexical_cast const&)
          {
          }
      }
  };
  
  #endif // BOOST_CONVERT_LEXICAL_CAST_HPP