Boost logo

Boost Users :

Subject: [Boost-users] [Serialize] master build failed due to friend template
From: alainm (alain.miniussi_at_[hidden])
Date: 2016-10-28 09:19:17


  Hi Robert,

My build is currently failing on master due to the following friend
declaration in array.hpp:
[...]
public:
     // note: I would like to make the copy constructor private but this
breaks
     // make_array. So I try to make make_array a friend - but that
doesn't
     // build. Need a C++ guru to explain this!
     template<class S>
     friend const boost::serialization::array_wrapper<T> make_array( T*
t, S s);
[...]
actual definition:

template<class T, class S>
inline
const array_wrapper< T > make_array( T* t, S s){
     const array_wrapper< T > a(t, s);
     return a;
}

the problem is that the actual template definition takes two template
parameters.
Has a result, the friend declaration introduces a new template that will
be missing at link time.

I'd like to have it fixed for the upcomming release so that we could
merge in a long overdue update of the MPI lib.
The fix seems kind of trivial:
https://github.com/boostorg/serialization/pull/46

I also have an issue with the selection criteria for emplace_hint which
fails (at least) on intel C++/CentOS 6.5:
https://github.com/boostorg/serialization/pull/47

Regards

Alain


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net