[Boost-bugs] [Boost C++ Libraries] #10535: Multiply Defined Symbols in serialization/wserialization

Subject: [Boost-bugs] [Boost C++ Libraries] #10535: Multiply Defined Symbols in serialization/wserialization
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-09-24 17:31:37


#10535: Multiply Defined Symbols in serialization/wserialization
----------------------------------------------+---------------------------
 Reporter: Isaac Lascasas <isaaclascasas@…> | Owner: ramey
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
  Version: Boost 1.54.0 | Severity: Regression
 Keywords: |
----------------------------------------------+---------------------------
 When linking a windows clr dll (may happen with other configurations too),
 if you use both serialization and wserialization you should not be able to
 link because of a couple of symbols defined across two different modules
 (is_whitespace(char) and is_whitespace(wchar_t) in basic_text_iprimitive
 and basic_text_wiprimitive).

 I solved the problem by changing this two files and rebuilding boost:

 // basic_text_iprimitive.ipp:

     template<>
     bool is_whitespace(char t);
 // {
 // return 0 != std::isspace(t);
 // }

     #ifndef BOOST_NO_CWCHAR
     template<>
     bool is_whitespace(wchar_t t);
 // {
 // return 0 != std::iswspace(t);
 // }
     #endif
 } // detail

 // basic_text_iprimitive.cpp:

 namespace detail {
     template<class CharType>
     bool is_whitespace(CharType c);

     template<>
     bool is_whitespace(char t)
     {
         return 0 != std::isspace(t);
     }

     #ifndef BOOST_NO_CWCHAR
     template<>
     bool is_whitespace(wchar_t t)
     {
         return 0 != std::iswspace(t);
     }
     #endif
 } // detail

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10535>
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:17 UTC