Add templated method create trimmed copy of string with c_str()
This commit is contained in:
parent
1132857324
commit
28d77dacd8
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|
||||||
@ -19,6 +20,18 @@ typename std::decay< T >::type uppercase( T&& x ) {
|
|||||||
return uppercase( t, t );
|
return uppercase( t, t );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
std::string trim_copy(const T& s) {
|
||||||
|
{
|
||||||
|
auto ret = std::string(s.c_str());
|
||||||
|
|
||||||
|
const auto end = ret.find_last_not_of(" \t\n\r\f\v");
|
||||||
|
if (end == std::string::npos)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
return ret.substr(0, end + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif //OPM_UTILITY_STRING_HPP
|
#endif //OPM_UTILITY_STRING_HPP
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
#include <opm/io/eclipse/PaddedOutputString.hpp>
|
#include <opm/io/eclipse/PaddedOutputString.hpp>
|
||||||
|
#include <opm/parser/eclipse/Utility/String.hpp>
|
||||||
|
|
||||||
// Convenience alias.
|
// Convenience alias.
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
@ -92,4 +93,15 @@ BOOST_AUTO_TEST_CASE (String_Shortening)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE (Trim) {
|
||||||
|
const auto s1 = PadString<4>{"X"};
|
||||||
|
BOOST_CHECK_EQUAL(Opm::trim_copy(s1), std::string{"X"});
|
||||||
|
|
||||||
|
const auto s2 = PadString<4>{"ABCD"};
|
||||||
|
BOOST_CHECK_EQUAL(Opm::trim_copy(s2), std::string{"ABCD"});
|
||||||
|
|
||||||
|
const auto s3 = PadString<4>{""};
|
||||||
|
BOOST_CHECK_EQUAL(Opm::trim_copy(s3), std::string{""});
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user