From d41521337e55e21da69d7c4e99bf95a792ba8ad8 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 30 Dec 2016 18:18:07 +0000 Subject: Return stream to ease inlining --- libadhocutil/compileTimeFormatter.h | 10 +++++----- libadhocutil/unittests/testCompileTimeFormatter.cpp | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libadhocutil/compileTimeFormatter.h b/libadhocutil/compileTimeFormatter.h index 8a92094..aeff488 100644 --- a/libadhocutil/compileTimeFormatter.h +++ b/libadhocutil/compileTimeFormatter.h @@ -176,20 +176,20 @@ namespace AdHoc { static std::string get(const Pn & ... pn) { std::stringstream s; - run(Parser::parse(), s, pn...); - return s.str(); + return run(Parser::parse(), s, pn...).str(); } template - static void write(stream & s, const Pn & ... pn) + static stream & write(stream & s, const Pn & ... pn) { - run(Parser::parse(), s, pn...); + return run(Parser::parse(), s, pn...); } template class ParserBuffer, typename ... Pn> - static void run(const ParserBuffer &, stream & s, const Pn & ... pn) + static stream & run(const ParserBuffer &, stream & s, const Pn & ... pn) { StreamWriter::write(s, pn...); + return s; } }; } diff --git a/libadhocutil/unittests/testCompileTimeFormatter.cpp b/libadhocutil/unittests/testCompileTimeFormatter.cpp index 0f021e5..df0d93c 100644 --- a/libadhocutil/unittests/testCompileTimeFormatter.cpp +++ b/libadhocutil/unittests/testCompileTimeFormatter.cpp @@ -117,6 +117,11 @@ BOOST_AUTO_TEST_CASE ( singleInt ) BOOST_REQUIRE_EQUAL(this->str(), "single 32."); } +BOOST_AUTO_TEST_CASE ( singleIntReturn ) +{ + BOOST_REQUIRE_EQUAL(Formatter::write(*this, 32).str(), "single 32."); +} + BOOST_AUTO_TEST_CASE ( singleDouble ) { Formatter::write(*this, 3.14); -- cgit v1.2.3