This fails to compile: ``` #include <iostream> #include <string_view> #include <CLI/CLI.hpp> namespace N { struct Type { explicit Type(const std::string_view& a_value) : m_value{a_value} {} explicit operator std::string() const { return std::string{"op str"}; } std::string m_value; }; } N::Type m_type{"abc"}; int main(int argc, char** argv) { CLI::App app; app.add_option("--type", m_type, "type")->capture_default_str(); CLI11_PARSE(app, argc, argv); return EXIT_SUCCESS; } ``` The cause is the explicit conversion operator to std::string. Compiles again, if the "explicit" is removed. May be related to https://github.com/CLIUtils/CLI11/issues/410.