12345678910111213141516171819202122232425262728293031323334353637 |
- // 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
|