私はこのトップコードリンクからhttps://www.topcoder.com/community/data-science/data-science-tutorials/power-up-c-with-the-standard-template-library-part-1/ のC++(STL)を学習しており、初めて学習するマクロを使用しています。 私は、次の方法でそれを使用しようとしていますが、多少の誤差は取得しています:typeof演算子を使用しているマクロを使用しているマクロ
#include <iostream>
#include <vector>
#include <set>
//Macros
#define tr(container, it)\
for(typeof(container.begin()) it = container.begin(); it!=container.end(); it++);
using namespace std;
int main()
{
set< pair<string, pair< int, vector<int> > > >SS;
int total = 0;
tr(SS, it) {
total += it->second.first;
}
return 0;
}
エラー:マクロを使用して行で、私はエラーを取得しています - >「は」はこのスコープで宣言されていません。助けてください!ありがとう!
は、それを手に入れたセミコロンを削除し、どうもありがとうございました!! –
このようなマクロは使用しないでください...現代のC++には、自家製マクロに頼ることなく同じことを可能にする、あらかじめ定義された構造があります。範囲ベースのforループ。 – Holt
'typeof'は標準のC++ではありません。それはgccの拡張だと私は信じています。 C++ 11では、 'auto it'またはそれ以上の範囲のループを使うことができます。 – Incomputable