Re: [Boost-bugs] [Boost C++ Libraries] #12969: Problem linking print_helper_t<nullptr_t> under Clang

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #12969: Problem linking print_helper_t<nullptr_t> under Clang
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-11-17 10:13:48


#12969: Problem linking print_helper_t<nullptr_t> under Clang
-------------------------------------+-------------------------------------
  Reporter: Tony Lewis | Owner: Raffi Enficiaud
  <TonyELewis@…> |
      Type: Bugs | Status: assigned
 Milestone: To Be Determined | Component: test
   Version: Boost 1.64.0 | Severity: Problem
Resolution: | Keywords:
                                     | test,link,print_helper_t,nullptr,nullptr_t,1_64_0_b2
-------------------------------------+-------------------------------------

Comment (by Tony E Lewis <TonyELewis@…>):

 AFAUI, what's going on is:
  * I'm building my code in C++14 mode, which causes the Boost Test code to
 provide a specialisation of `print_log_value<>` for `nullptr_t` with a
 declaration (but not definition) of its `operator()`.
  * I'm linking against Boost libraries that were built without any
 standard specified. In GCC 7.2.0 means ~C++14 but in Clang 4.0.1 means
 ~C++03. So the Clang-built library I'm linking against doesn't provide any
 definition of `print_log_value<std::nullptr_t>::operator()`.

 I can work around this. However it may make things a bit simpler to
 either:
  * provide an inline definition of
 `print_log_value<std::nullptr_t>::operator()` in the `.hpp` rather than in
 a separate `.ipp`, or failing that
  * not specialise `print_log_value<>` for `nullptr_t` at all and leave it
 for users to do themselves if they wish.

-- 
Ticket URL: <https://svn.boost.org/trac10/boost/ticket/12969#comment:2>
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-11-17 10:20:02 UTC