Skip to content

Add support for std::string_view to Json::Value::operator[] #1352

Open
@sir-exasol

Description

@sir-exasol

Is your feature request related to a problem? Please describe.
We use std::string_view for names of object entries. However, when accessing values with Json::Value::operator[], we always have to convert the name a std::string first. This incurs an unnecessary allocation and adds boilerplate code.

Describe the solution you'd like
I would like Json::Value::operator[] to support std::string_view.

Describe alternatives you've considered
As mentioned an alternative is to convert the name to std::string first, but this is less readable and slower. Converting to const char* is in general not possible, because the contents of std::string_view might not be null-terminated.

Additional context
This feature requires C++17. jsoncpp seems to build fine with C++17 so this shouldn't be a problem as long as the feature is deactivated when compiling with a lower standard.
#999 already implemented this feature, but was closed. It is not clear to me why the PR was closed. If there is additional work necessary, I am happy to help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions