Skip to content

# basic_json::meta

    static basic_json meta();

This function returns a JSON object with information about the library, including the version number and information on the platform and compiler.

## Return value

JSON object holding version information

key | description
--- | ---
`compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version).
`copyright` | The copyright line for the library as string.
`name` | The name of the library as string.
`platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`.
`url` | The URL of the project as string.
`version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by Semantic Versioning, and `string` (the version string).

## Exception safety

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

## Complexity

Constant.

## Example

The following code shows an example output of the `meta()` function.

    #include <iostream>
    #include <iomanip>
    #include <nlohmann/json.hpp>

    using json = nlohmann::json;

    int main()
    {
        // call meta()
        std::cout << std::setw(4) << json::meta() << '\n';
    }

Output:

    {
        "compiler": {
            "c++": "201103",
            "family": "clang",
            "version": "12.0.0 (clang-1200.0.22.19)"
        },
        "copyright": "(C) 2013-2020 Niels Lohmann",
        "name": "JSON for Modern C++",
        "platform": "apple",
        "url": "https://github.com/nlohmann/json",
        "version": {
            "major": 3,
            "minor": 8,
            "patch": 0,
            "string": "3.8.0"
        }
    }