add from_string to utility

This commit is contained in:
ToruNiina
2018-12-08 20:18:50 +09:00
parent 66807d19d1
commit 2b2a05148e
2 changed files with 23 additions and 0 deletions

View File

@@ -68,3 +68,15 @@ BOOST_AUTO_TEST_CASE(test_concat_to_string)
const std::string cat = toml::concat_to_string("foo", "bar", 42); const std::string cat = toml::concat_to_string("foo", "bar", 42);
BOOST_CHECK(cat == "foobar42"); BOOST_CHECK(cat == "foobar42");
} }
BOOST_AUTO_TEST_CASE(test_from_string)
{
{
const std::string str("123");
BOOST_CHECK_EQUAL(toml::from_string<int>(str, 0), 123);
}
{
const std::string str("01");
BOOST_CHECK_EQUAL(toml::from_string<int>(str, 0), 1);
}
}

View File

@@ -62,5 +62,16 @@ std::string concat_to_string(Ts&& ... args)
return detail::concat_to_string_impl(oss, std::forward<Ts>(args) ...); return detail::concat_to_string_impl(oss, std::forward<Ts>(args) ...);
} }
template<typename T, typename U>
T from_string(const std::string& str, U&& opt)
{
T v(std::forward<U>(opt));
std::istringstream iss(str);
iss >> v;
return v;
}
}// toml }// toml
#endif // TOML11_UTILITY #endif // TOML11_UTILITY