3 #include <boost/lexical_cast.hpp>
\r
5 #include <type_traits>
\r
10 template<typename T, typename C>
\r
11 typename std::enable_if<!std::is_convertible<T, std::wstring>::value, typename std::decay<T>::type>::type get_param(const std::wstring& name, C&& params, T fail_value = T())
\r
13 auto it = std::find(std::begin(params), std::end(params), name);
\r
14 if(it == params.end() || ++it == params.end())
\r
17 T value = fail_value;
\r
20 value = boost::lexical_cast<std::decay<T>::type>(*it);
\r
22 catch(boost::bad_lexical_cast&){}
\r
27 template<typename C>
\r
28 std::wstring get_param(const std::wstring& name, C&& params, const std::wstring& fail_value = L"")
\r
30 auto it = std::find(std::begin(params), std::end(params), name);
\r
31 if(it == params.end() || ++it == params.end())
\r