Dear boost users I am trying to use the boost tokenizer with Borland Builder C++ 5 compiler. This far compiles fine: boost::tokenizer<> tok(std::string(ac0)); All further references to tok such as tok.assign(std::string(ac0)) or tok.begin() result in an error message " Structure requires on the left side of . or .*" Any advice would be welcome. Craig Hicks Engineer, KGK, Tokyo Japan
From: "hicks"
Dear boost users
I am trying to use the boost tokenizer with Borland Builder C++ 5 compiler.
This far compiles fine: boost::tokenizer<> tok(std::string(ac0));
All further references to tok such as tok.assign(std::string(ac0)) or tok.begin()
result in an error message " Structure requires on the left side of . or .*"
boost::tokenizer<> tok(std::string(ac0)); declares a function named 'tok' that returns a boost::tokenizer<> and has one parameter of type std::string named 'ac0'. The parentheses around ac0 are ignored. -- Peter Dimov Multi Media Ltd.
Hi Thats very helpful, thanks. Do you know why the compiler places precedence on that interpretation, rather than on one giving an instatiation of a local variable? Craig Hicks Peter Dimov wrote:
From: "hicks"
Dear boost users
I am trying to use the boost tokenizer with Borland Builder C++ 5
compiler.
This far compiles fine: boost::tokenizer<> tok(std::string(ac0));
All further references to tok such as tok.assign(std::string(ac0)) or tok.begin()
result in an error message " Structure requires on the left side of . or .*"
boost::tokenizer<> tok(std::string(ac0));
declares a function named 'tok' that returns a boost::tokenizer<> and has one parameter of type std::string named 'ac0'.
The parentheses around ac0 are ignored.
-- Peter Dimov Multi Media Ltd.
Info: http://www.boost.org Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl Unsubscribe: mailto:boost-users-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
[Non-text portions of this message have been removed]
From: "hicks"
Hi
Thats very helpful, thanks. Do you know why the compiler places precedence on that interpretation, rather than on one giving an instatiation of a local variable?
The C++ standard says that a function declaration takes precedence. Don't ask me why. :-) -- Peter Dimov Multi Media Ltd.
Peter Dimov wrote:
boost::tokenizer<> tok(std::string(ac0));
declares a function named 'tok' that returns a boost::tokenizer<> and has one parameter of type std::string named 'ac0'.
The parentheses around ac0 are ignored.
participants (2)
-
hicks
-
Peter Dimov