Building simple code (example is below) returns error on eclipse, while g++ from commandline doesn't. Both eclipse and g++ output executable that act the same (and the result meets my expectation). This is painful when the code isn't simple like the example I'm showing. Any idea is appreciated.
Env: Eclipse Indigo CDT, Ubuntu 10.10
Sample code:
//For test_boostStr()
#include <boost/algorithm/string.hpp>
#include <vector>
#include <iostream>
//For test_boost_foreach()
#include <boost/algorithm/string/trim.hpp>
#include <boost/foreach.hpp>
void test_boostStr() {
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t "));
std::cout << strs.size() << std::endl;
// std::cout << strs.at(1) << std::endl;
}
void test_boost_foreach() {
//std::vector<std::string> namespaces_;
std::string namespaces_ = " tele op eration. ";
std::cout << "managing namespaces: ";
std::string out;
std::string s;
BOOST_FOREACH(s, namespaces_)
{
boost::trim(s);
out += s + " ";
}
std::cout << out.substr(0, out.size() - 1) << std::endl;
}
int main(void) {
test_boost_foreach();
}
Result of running the exec :
t e l e o p e r a t i o n .
Build result in the 'Problem' tab on Eclipse:
Description Resource Path Location Type
Invalid arguments '
Candidates are:
boost::mpl::not_<#0> * not_(#0 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::mpl::not_<#0> * not_(#0 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::mpl::not_<#0> * not_(#0 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::foreach_detail_::auto_any<boost::foreach_detail_::foreach_iterator<#0,#1>::type> end(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0,#1> *, mpl_::bool_<0> *)
boost::foreach_detail_::auto_any<int> end(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0 *,#1> *, mpl_::bool_<1> *)
boost::foreach_detail_::auto_any<boost::foreach_detail_::foreach_iterator<#0,#1>::type> end(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0,#1> *, mpl_::bool_<1> *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::foreach_detail_::auto_any<boost::foreach_detail_::foreach_iterator<#0,#1>::type> begin(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0,#1> *, mpl_::bool_<0> *)
boost::foreach_detail_::auto_any<#0 *> begin(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0 *,#1> *, mpl_::bool_<1> *)
boost::foreach_detail_::auto_any<boost::foreach_detail_::foreach_iterator<#0,#1>::type> begin(const boost::foreach_detail_::auto_any_base &, boost::foreach_detail_::type2type<#0,#1> *, mpl_::bool_<1> *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::foreach_detail_::auto_any<#0 *> contain(#0 &, mpl_::bool_<0> *)
boost::foreach_detail_::auto_any<#0> contain(const #0 &, mpl_::bool_<1> *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
boost::algorithm::detail::is_any_ofF<boost::range_value<#0>::type> is_any_of(const #0 &)
' Prove.cpp /ProvingGround line 12 Semantic Error
Invalid arguments '
Candidates are:
#0 & split(#0 &, #1 &, #2, enum boost::algorithm::token_compress_mode_type)
' Prove.cpp /ProvingGround line 12 Semantic Error
Invalid arguments '
Candidates are:
? * or_(#0 *, #1 *, #2 *)
? * or_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * or_(#0 *, #1 *, #2 *)
? * or_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * or_(#0 *, #1 *, #2 *)
? * or_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * is_array_(const #0 &)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * is_array_(const #0 &)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * is_array_(const #0 &)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
Invalid arguments '
Candidates are:
? * and_(#0 *, #1 *, #2 *)
? * and_(#0 *, #1 *)
' Prove.cpp /ProvingGround line 23 Semantic Error
I haven't solved this issue (happens a lot particularly when I use boost it seems), but the root cause may lie in Eclipse' CDT plug-in according to this thread. Brutal workaround is, as discussed in the page, to turn off code analysis feature.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With