summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2020-03-18 15:33:19 +0000
committerHåvard Pettersen <havardpe@oath.com>2020-03-19 10:49:32 +0000
commit56abaa52add9945179344c7289b896b790315388 (patch)
treeeef62abe410e9d0584483a7a00c916ac35c0b26a /vespalib
parent141c98cbcf97153858d6ae5a535e331d7cf174ca (diff)
print more details about type errors
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/stringfmt/fmt.cpp5
-rw-r--r--vespalib/src/vespa/vespalib/util/stringfmt.cpp11
-rw-r--r--vespalib/src/vespa/vespalib/util/stringfmt.h10
3 files changed, 25 insertions, 1 deletions
diff --git a/vespalib/src/tests/stringfmt/fmt.cpp b/vespalib/src/tests/stringfmt/fmt.cpp
index f9bd0ae12fb..e941c185e2f 100644
--- a/vespalib/src/tests/stringfmt/fmt.cpp
+++ b/vespalib/src/tests/stringfmt/fmt.cpp
@@ -4,6 +4,7 @@
#include <vespa/vespalib/testkit/test_kit.h>
using vespalib::make_string;
+using vespalib::make_string_short::fmt;
TEST("test that make_string formats as one can expect.")
{
@@ -39,4 +40,8 @@ TEST("test that make_string formats as one can expect.")
EXPECT_TRUE(tst == make_string("%s", p));
}
+TEST("require that short form make string can be used") {
+ EXPECT_EQUAL(fmt("format: %d", 123), vespalib::string("format: 123"));
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/vespalib/src/vespa/vespalib/util/stringfmt.cpp b/vespalib/src/vespa/vespalib/util/stringfmt.cpp
index 266fb60714d..3c5ebce355c 100644
--- a/vespalib/src/vespa/vespalib/util/stringfmt.cpp
+++ b/vespalib/src/vespa/vespalib/util/stringfmt.cpp
@@ -50,4 +50,15 @@ vespalib::string make_string(const char *fmt, ...)
return ret;
}
+namespace make_string_short {
+vespalib::string fmt(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ vespalib::string ret = make_string_va(format, ap);
+ va_end(ap);
+ return ret;
+}
+} // namespace vespalib::make_string_short
+
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/util/stringfmt.h b/vespalib/src/vespa/vespalib/util/stringfmt.h
index e9ec1c433bb..1009f3d9275 100644
--- a/vespalib/src/vespa/vespalib/util/stringfmt.h
+++ b/vespalib/src/vespa/vespalib/util/stringfmt.h
@@ -16,5 +16,13 @@ extern vespalib::string make_string(const char *fmt, ...)
#endif
;
-} // namespace vespalib
+namespace make_string_short {
+extern vespalib::string fmt(const char *format, ...)
+#ifdef __GNUC__
+ // Add printf format checks with gcc
+ __attribute__ ((format (printf,1,2)))
+#endif
+ ;
+} // namespace vespalib::make_string_short
+} // namespace vespalib