// 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 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 void operator()(TypeIn const& value_in, boost::optional& result_out) const { try { result_out = boost::lexical_cast(value_in); } catch (boost::bad_lexical_cast const&) { } } }; #endif // BOOST_CONVERT_LEXICAL_CAST_HPP