Boost logo

Boost :

Subject: Re: [boost] [log] Boost.Log formal review
From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2010-03-15 15:07:00


On Mar 8, 2010, at 1:37 AM, Vladimir Prus wrote:

> The downloads are at:
>
> http://sourceforge.net/projects/boost-log

Hi,

I was thinking of submitting a review, tried to build the library
with gcc-4.2.4, and ran into this error. I apologize in advance if
this has already been discussed / resolved, I haven't been following
the discussion.

../../../boost/intrusive/detail/is_stateful_value_traits.hpp:38:
error: ‘& boost::intrusive::derivation_value_traits<T, NodeTraits,
LinkMode>::to_node_ptr [with T =
boost::log_st::basic_attribute_set<wchar_t>::implementation::node,
NodeTraits =
boost::log_st::<unnamed>::ordered_list<boost::log_st::basic_attribute_se
t<wchar_t>::implementation::node,
boost::log_st::basic_attribute_set<wchar_t>::node_base>::node_traits,
boost::intrusive::link_mode_type LinkMode = safe_link]’ is not a
valid template argument for type
‘boost::log_st::basic_attribute_set<wchar_t>::node_base* (*)
(boost::log_st::basic_attribute_set<wchar_t>::implementation::node&)’
because function ‘static typename NodeTraits::node_ptr
boost::intrusive::derivation_value_traits<T, NodeTraits,
LinkMode>::to_node_ptr(typename std::iterator_traits<typename
boost::pointer_to_other<typename NodeTraits::node_ptr,
T>::type>::reference) [with T =
boost::log_st::basic_attribute_set<wchar_t>::implementation::node,
NodeTraits =
boost::log_st::<unnamed>::ordered_list<boost::log_st::basic_attribute_se
t<wchar_t>::implementation::node,
boost::log_st::basic_attribute_set<wchar_t>::node_base>::node_traits,
boost::intrusive::link_mode_type LinkMode = safe_link]’ has not
external linkage

     "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fno-strict-
aliasing -DBOOST_ALL_NO_LIB=1 -DBOOST_LOG_BUILDING_THE_LIB=1 -
DBOOST_LOG_NO_THREADS -DBOOST_LOG_USE_NATIVE_SYSLOG=1 -
DBOOST_SYSTEM_STATIC_LINK=1 -DDATE_TIME_INLINE -I"../../.." -c -o
"../../../bin.v2/libs/log/build/gcc-4.2.4/debug/link-static/
attribute_set.o" "../../../libs/log/src/attribute_set.cpp"

The tar ball was named RC4 and was laid down over Boost trunk in case
that matters.

-- Noel

Here's the program I was trying to compile.

#include <iostream>
#include <stdexcept>
#include "mpi.h"
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>

int main (int argc, char *argv[])
{
   try {
     boost::log::sources::logger lg;
     MPI_Init(&argc, &argv);
     int rank = 0;
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     BOOST_LOG(lg) << "hello from processor " << rank << "\n";
     MPI_Finalize();
   }
   catch (std::exception& e) {
     std::cout << e.what() << std::endl;
   }
   catch (...) {
   }
   return 0;
}


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk