From 53a788e98efa708db6c51ad552955ee8b18dac3f Mon Sep 17 00:00:00 2001 From: Marrub Date: Sat, 3 Dec 2016 10:08:38 -0500 Subject: [PATCH] dslafsdf --- printtest.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/printtest.cpp b/printtest.cpp index 117eca4..d97e88b 100644 --- a/printtest.cpp +++ b/printtest.cpp @@ -1,4 +1,5 @@ #include +#include struct Class { @@ -33,18 +34,28 @@ int Print(char const *fmt, T &&head, Args &&...tail) if(p[0] == '{') switch(p[1]) { - case '}': std::cout << head; return ret + Print(p + 2, tail...); + case '}': + if(std::ostringstream o; true) + { + o << head; + std::cout << o.str(); + return (o.str().size()) + ret + Print(p + 2, tail...); + } case '{': p++; break; } std::cout.put(*p); } - return -1; // won't happen + return ret; } int main() { Class c; - Print("a{}b{{}c{d{}e{}f", 91230, c); + // should output: + // a91230b{}c{d300e{}f + // ret = 19 + int ret = Print("a{}b{{}c{d{}e{}f", 91230, c); + Print("ret = {}", ret); }