C++ – boost split compile issue

boostc

I have the following code snippet. I am compiling using the sun studio 12 compiler and have tried boost 1.33 and 1.39

#include <boost/algorithm/string.hpp>
#include <string>
#include <vector>

using namespace boost;
using namespace std;


int main(int argc, char* argv[])
{

    string exbyte = "0x2430";
    string exbytes = "0x2430,2430";
    typedef vector< string > SplitVec;

    SplitVec res1 ;
    split(res1 , exbyte, is_any_of(",") );
    return 0
}

I get the following compile error:
"/bb/source/boost/boost_1_39_0/boost/algorithm/string/iter_find.hpp", line 175: Error, nomatchoverin: Could not find a match for std::vector::vector(boost::transform_iterator, boost::algorithm::split_iterator, boost::use_default, boost::use_default>, boost::transform_iterator, boost::algorithm::split_iterator, boost::use_default, boost::use_default>) needed in boost::algorithm::iter_split, std::string, boost::algorithm::detail::token_finderF>>(std::vector&, std::string &, boost::algorithm::detail::token_finderF>)

If anybody has thoughts on this that would be awesome. Since I am cotemplateing strtok(only kidding)

Best Answer

Other than the missing semi-colon after return 0, which I assume is an unrelated typo, your code compiles fine for me, using gcc 4.3.2.

According to the documentation for boost::split, you're using the function correctly, so I don't think this is a coding error. Are you sure you have boost installed correctly?

Edit: It may be that Boost doesn't support your particular compiler, so parts of boost may not work for you. See here for a list of supported compilers, along with various issues which affect each compiler.

Related Topic