[Boost-bugs] [Boost C++ Libraries] #9189: Solaris Studio 12.3, boost::log: explicit template instantiations need "template<>"

Subject: [Boost-bugs] [Boost C++ Libraries] #9189: Solaris Studio 12.3, boost::log: explicit template instantiations need "template<>"
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-10-02 00:20:09


#9189: Solaris Studio 12.3, boost::log: explicit template instantiations need
"template<>"
-------------------------------------------------+-------------------------
 Reporter: Brian Vandenberg <phantall+boost@…> | Type: Bugs
   Status: new | Milestone: To Be
Component: None | Determined
 Severity: Problem | Version: Boost
                                                 | 1.54.0
                                                 | Keywords:
-------------------------------------------------+-------------------------
 When building libs/log/src/settings_parser.cpp with Solaris Studio 12.3,
 I'm getting the following errors. FYI: I changed convert.hpp by applying
 the fix suggested in ticket #7513.

 {{{
 "./boost/fusion/sequence/convert.hpp", line 23: Error: apply is not a
 member of
 boost::fusion::extension::convert_impl<boost::fusion::struct_tag>.
 "./boost/fusion/mpl/push_front.hpp", line 28: Where: While
 specializing "boost::fusion::result_of::convert</*...*/>"
 /* A bunch more "While specialing" and "Specialized in" and "Instantiated
 from" statements */
 "libs/log/src/settings_parser.cpp", line 209: Where: Instantiated from
 boost::log::v2s_mt_posix::parse_settings<char>(std::istream &).
 "libs/log/src/settings_parser.cpp", line 237: Where: Instantiated from
 non-template code.
 "./boost/fusion/sequence/convert.hpp", line 25: Error:
 boost::fusion::result_of::convert</*...*/>::gen is not a namespace or
 class name.
 /* ... */
 "libs/log/src/settings_parser.cpp", line 209: Where: Instantiated from
 boost::log::v2s_mt_posix::parse_settings<char>(std::istream &).
 "libs/log/src/settings_parser.cpp", line 237: Where: Instantiated from
 non-template code.
 "./boost/fusion/sequence/convert.hpp", line 25: Error: No parameters
 provided for template.
 /* ... */
 "libs/log/src/settings_parser.cpp", line 209: Where: Instantiated from
 boost::log::v2s_mt_posix::parse_settings<char>(std::istream &).
 "libs/log/src/settings_parser.cpp", line 237: Where: Instantiated from
 non-template code.
 "./boost/fusion/sequence/convert.hpp", line 25: Error: Redefining
 boost::type<boost::T> after use in
 boost::fusion::result_of::convert</*...*/>
 /* ... */
 "libs/log/src/settings_parser.cpp", line 209: Where: Instantiated from
 boost::log::v2s_mt_posix::parse_settings<char>(std::istream &).
 "libs/log/src/settings_parser.cpp", line 237: Where: Instantiated from
 non-template code.
 /* More errors afterward, but they appear to be repeats of existing errors
 */
 }}}

 The following change(s) will get rid of the errors:

 {{{
  208: #ifdef BOOST_LOG_USE_CHAR
 -209: template BOOST_LOG_SETUP_API basic_settings< char > parse_settings<
 char >/*...*/
 +209: template<> BOOST_LOG_SETUP_API basic_settings< char >
 parse_settings< char >/*...*/
  210: #endif
  211: #ifdef BOOST_LOG_USE_WCHAR_T
 -212: template BOOST_LOG_SETUP_API basic_settings< wchar_t >
 parse_settings< wchar_t >/*...*/
 +212: template<> BOOST_LOG_SETUP_API basic_settings< wchar_t >
 parse_settings< wchar_t >/*...*/
  213: #endif
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9189>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC