# toml literal | toml11
_toml Literal # With the ""_toml literal, you can format TOML files inline. #include <toml.hpp> int main() { using namespace toml::literals::toml_literals; const auto v = "a = 42"_toml; assert(v.at("a").as_integer() == 42); return 0; } When including line breaks, raw string literals come in handy. #include <toml.hpp> int main() { using namespace toml::literals::toml_literals; const auto v = R"( a = 42 b = "foo" )"_toml; assert(v.at("a").as_integer() == 42); assert(v.at("b").as_string() == "foo"); return 0; } If a value is written on its own, that value is returned.

toml literal

# `_toml` Literal #

With the `""_toml` literal, you can format TOML files inline.

    #include <toml.hpp>

    int main()
    {
        using namespace toml::literals::toml_literals;

        const auto v = "a = 42"_toml;

        assert(v.at("a").as_integer() == 42);

        return 0;
    }

When including line breaks, raw string literals come in handy.

    #include <toml.hpp>

    int main()
    {
        using namespace toml::literals::toml_literals;

        const auto v = R"(
            a = 42
            b = "foo"
        )"_toml;

        assert(v.at("a").as_integer() == 42);
        assert(v.at("b").as_string()  == "foo");

        return 0;
    }

If a value is written on its own, that value is returned.

    #include <toml.hpp>

    int main()
    {
        using namespace toml::literals::toml_literals;

        const auto a = "42"_toml;
        const auto b = "12:34:56"_toml;

        assert(a.as_integer() == 42);
        assert(b.as_local_time().hour   == 12);
        assert(b.as_local_time().minute == 34);
        assert(b.as_local_time().second == 56);

        return 0;
    }

TOML allows keys consisting solely of numbers. Therefore, `[1]` is a valid table name.

When there’s ambiguity between table definitions and arrays, table definitions take precedence.

To interpret as an array, please use a trailing comma.

    #include <toml.hpp>

    int main()
    {
        using namespace toml::literals::toml_literals;

        const auto t = "[1]"_toml;  // {1 = {}}
        const auto a = "[1,]"_toml; // [1,]

        assert(t.is_table());
        assert(t.at("1").is_table());

        assert(a.is_array());
        assert(a.at(0).as_integer() == 1);

        return 0;
    }