BOOST_FOREACH und std::pair
-
Es ist zwar möglich my_vector via BOOST_FOREACH durchzuiterieren, aber ich verstehe noch nicht, weshalb Implementierung 2 nicht funktioniert.
#include <vector> #include "boost/foreach.hpp" int main() { std::vector<std::pair<std::string, std::string> > my_vector; // 1. OK typedef std::pair<std::string, std::string> MyPair; BOOST_FOREACH(MyPair& p, my_vector) {} // 2. ERROR BOOST_FOREACH(std::pair<std::string, std::string>& p, my_vector) {} // 3. OK, but does not work with reference. std::pair<std::string, std::string> p; BOOST_FOREACH(p, my_vector) {} return 0; }
-
BOOST_FOREACH ist ein Makro und hat afaik Probleme mit Kommas im Typ.
Edit: Bestätigung und mehr Informationen hier:
http://stackoverflow.com/questions/1713653/boost-foreach-templates-without-typedefMfG SideWinder
-
SideWinder schrieb:
BOOST_FOREACH ist ein Makro und hat afaik Probleme mit Kommas im Typ.
Edit: Bestätigung und mehr Informationen hier:
http://stackoverflow.com/questions/1713653/boost-foreach-templates-without-typedefMfG SideWinder
Danke, das klingt plausibel!
-
autowäre eine Möglichkeit, oder gleich Range-Based For.
-
BOOST_PP_KOMMA geht auch
-
otze schrieb:
BOOST_PP_KOMMA geht auch
Zeig mal bitte wie. Wenn ich nach "BOOST_PP_KOMMA" google, dann finde ich nur diesen Thread.
-
Sorry, sollte ein C sein, kein K.
http://www.boost.org/doc/libs/1_39_0/boost/preprocessor/punctuation/comma.hpp
-
krümelkacker schrieb:
otze schrieb:
BOOST_PP_KOMMA geht auch
Zeig mal bitte wie. Wenn ich nach "BOOST_PP_KOMMA" google, dann finde ich nur diesen Thread.
BOOST_PP_COMMA
-
krümelkacker schrieb:
otze schrieb:
BOOST_PP_KOMMA geht auch
Zeig mal bitte wie. Wenn ich nach "BOOST_PP_KOMMA" google, dann finde ich nur diesen Thread.
Weil es im Englischen natürlich COMMA heißt

http://www.boost.org/doc/libs/1_47_0/libs/preprocessor/doc/ref/comma.htmlEdit: Na da war meine Zeit ja umsonst.
MfG SideWinder