素晴らしい発見のBOOST_FOREACH

BOOST_FOREACH(タイプ名、コンテナ):機能、フォーム 、
コンテナ内のコンテンツを横断するため、しかし、カンマのように来て遭遇した地図データ構造ならば、問題があるでしょう。
例えばスタンダード::ベクトル<はstd ::マップ<はstd ::文字列のstd ::文字列>>容器。

あなたはこのトラバーサルを指示した場合、コンパイラは渡されていない(おそらくBUG 2008年代)

BOOST_FOREACH(std::map<std::string, std::string>& tmp, container)
{

}
编译器会提示这个函数参数不正确的一系列的提示,其实就是把map里面的[,]当做函数参数的分割符了,怎么解呢?这样写:

#define std::map<std::string, std::string> STDMAP;

BOOST_FOREACH(STDMAP& tmp, container)
{

}
这样写就没问题了,奇葩的编译器... OVER

おすすめ

転載: blog.51cto.com/11753138/2412591