diff options
author | Håvard Pettersen <havardpe@oath.com> | 2020-03-18 15:33:19 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2020-03-19 10:49:32 +0000 |
commit | 56abaa52add9945179344c7289b896b790315388 (patch) | |
tree | eef62abe410e9d0584483a7a00c916ac35c0b26a /vespalib | |
parent | 141c98cbcf97153858d6ae5a535e331d7cf174ca (diff) |
print more details about type errors
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/stringfmt/fmt.cpp | 5 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/util/stringfmt.cpp | 11 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/util/stringfmt.h | 10 |
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 |