Problems with boost tokenizing since CMSSW_7_4_11


I am using

#include <boost/algorithm/string.hpp>
std::string line = "some line";

std::vector<std::string> tokens;
auto anyof = boost::is_any_of("\t ");
boost::split(tokens, line, anyof);

in a macro. Since CMSSW_7_4_11, the macro crashes with the following message:

In file included from input_line_24:1: In file included from /cms/thomassen/2015/Analysis/1016_seesaw/SeesawInclusiveBins.C:3: In file included from /cvmfs/ In file included from /cvmfs/ /cvmfs/ error: invalid use of incomplete type 'iterator_range<const char *>' return iterator_range<T*>( r, r + length(r) ); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /cvmfs/ note: definition of 'boost::iterator_range<const char *>' is not complete until the closing '}' class iterator_range ^ IncrementalExecutor::executeFunction: symbol '_ZN5boost10as_literalIcLm3EEENS_14iterator_rangeIPKT_EERAT0__S3_' unresolved while linking function'_Z15__cling_Un1Qu30Pv'!

The crash is caused by the is_any_of line, i.e. it also occurs when commenting the last line.

Before CMSSW_7_4_11, this worked fine. What can I do to make it work again?


Can you please translate for us the version of ROOT used in CMSSW_7_4_11 and before.

Did you change the version of boost with this version of CMSSW?


It is ROOT 6.02/05 in both cases. I did not do anything special about ROOT.

Will it be better to inquire with the CMSSW people? It could be a problem related to the boost packaging, e.g.