diff --git a/src/json.cc b/src/json.cc index 31d709cb..2d67f81e 100644 --- a/src/json.cc +++ b/src/json.cc @@ -442,7 +442,7 @@ json::object_t json::get() const } } -json::operator const std::string() const +json::operator std::string() const { return get<std::string>(); } diff --git a/src/json.h b/src/json.h index cb158bcc..9fe4beb2 100644 --- a/src/json.h +++ b/src/json.h @@ -175,7 +175,7 @@ class json T get() const; /// implicit conversion to string representation - operator const std::string() const; + operator std::string() const; /// implicit conversion to integer (only for numbers) operator int() const; /// implicit conversion to double (only for numbers) diff --git a/test/json_unit.cc b/test/json_unit.cc index 542eb436..63c955d1 100644 --- a/test/json_unit.cc +++ b/test/json_unit.cc @@ -773,6 +773,7 @@ TEST_CASE("string") CHECK_NOTHROW(auto v = j.get<json::array_t>()); CHECK_THROWS_AS(auto v = j.get<json::object_t>(), std::logic_error); CHECK_NOTHROW(auto v = j.get<std::string>()); + CHECK_NOTHROW(auto v = static_cast<std::string>(j)); CHECK_THROWS_AS(auto v = j.get<bool>(), std::logic_error); CHECK_THROWS_AS(auto v = j.get<int>(), std::logic_error); CHECK_THROWS_AS(auto v = j.get<double>(), std::logic_error);