diff --git a/include/boost/program_options/detail/value_semantic.hpp b/include/boost/program_options/detail/value_semantic.hpp index 80e292510..27b7c241b 100644 --- a/include/boost/program_options/detail/value_semantic.hpp +++ b/include/boost/program_options/detail/value_semantic.hpp @@ -17,13 +17,15 @@ namespace boost { template class optional; } namespace boost { namespace program_options { - extern BOOST_PROGRAM_OPTIONS_DECL std::string arg; + namespace detail { + extern BOOST_PROGRAM_OPTIONS_DECL std::string arg; + } template std::string typed_value::name() const { - std::string const& var = (m_value_name.empty() ? arg : m_value_name); + std::string const& var = (m_value_name.empty() ? detail::arg : m_value_name); if (!m_implicit_value.empty() && !m_implicit_value_as_text.empty()) { std::string msg = "[=" + var + "(=" + m_implicit_value_as_text + ")]"; if (!m_default_value.empty() && !m_default_value_as_text.empty()) diff --git a/src/value_semantic.cpp b/src/value_semantic.cpp index de7b2ace8..c4feb688e 100644 --- a/src/value_semantic.cpp +++ b/src/value_semantic.cpp @@ -84,12 +84,14 @@ namespace boost { namespace program_options { } #endif - BOOST_PROGRAM_OPTIONS_DECL std::string arg("arg"); + namespace detail { + BOOST_PROGRAM_OPTIONS_DECL std::string arg("arg"); + } std::string untyped_value::name() const { - return arg; + return detail::arg; } unsigned