On Sun, Aug 23, 2009 at 11:20 PM, Diederick C.
Niehorster
That also gave me compilation errors:
..\Dependency\boost\boost/spirit/home/karma/generate.hpp(72) : error C2664: 'boost::mpl::assertion_failed' : cannot convert parameter 1 from 'boost::mpl::failed ************(__thiscall boost::spirit::karma::generate::error_invalid_expression::* ***********)(Expr)' to 'boost::mpl::assert<false>::type'
..\Dependency\boost\boost/spirit/home/karma/generate.hpp(76) : error C2039: 'generate' : is not a member of 'boost::proto::exprns_::expr
' Below, please find a minimal example. Thank you for your continued help!
Best, Dee
--- #include <vector> #include <string> #include <iostream> using namespace std; #include
namespace bk = boost::spirit::karma; namespace ba = boost::spirit::ascii; int main() { vector<string> vsTest; vsTest.push_back("test"); vsTest.push_back("t2"); vsTest.push_back("t3");
bk::generate(ostream_iterator<char>(cout), "Command line options not recognized:\n" << (" \"" << ba::string % ("\"" << bk::eol)) << "\"" << bk::eol, vsTest);
bk::generate(ostream_iterator<char>(cout), "Command line options not recognized:\n" << ('\"' << ba::string << '\"') % bk::eol << bk::eol, vsTest);
return 0; } ---
This is what I get when I compile with your test: 1>------ Build started: Project: pure_testing, Configuration: Release Win32 ------ 1>Compiling... 1>main.cpp 1>using native typeof 1>Linking... 1>Generating code 1>Finished generating code 1>Embedding manifest... 1>Build Time 0:27 1>Build log was saved at "file://r:\Programming_Projects\pure_testing\Release\BuildLog.htm" 1>pure_testing - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== Looks like it works perfect to me. You are using Boost Trunk like I stated in my first post in this thread, right? You should still use this grammar though, it is the best: bk::generate(ostream_iterator<char>(cout), "Command line options not recognized:\n" << (" \"" << ba::string << '\"') % bk::eol ,vsTest); And yes, I confirmed it compiles and runs as you want.