#declare で「自動」に変数を作成したい。したがって、新しい変数のクラス定義に何度も入力したくありません (実際には、単純な整数ではなく、多次元ベクトルを宣言しています...)
私はこのコードを持っています:
#define inti(aa)(int (aa)=3)
...
inti(a);
しかし、コンパイラは次のように述べています。
「エラー: 'a' はこのスコープで宣言されていません」
この問題を C++ で解決することは可能ですか? 助けてください!
#declare で「自動」に変数を作成したい。したがって、新しい変数のクラス定義に何度も入力したくありません (実際には、単純な整数ではなく、多次元ベクトルを宣言しています...)
私はこのコードを持っています:
#define inti(aa)(int (aa)=3)
...
inti(a);
しかし、コンパイラは次のように述べています。
「エラー: 'a' はこのスコープで宣言されていません」
この問題を C++ で解決することは可能ですか? 助けてください!
使用する:
#define inti(aa) int aa=3
だって
(int aa=3);
違法であり、さらにあなたがそこに持っているものです。
実際、それをスクラッチします。マクロを使用しないでください。変数を古き良き方法で宣言するだけです。
実際、私は多次元ベクトルを宣言しています
あなたの実際の問題を述べるための質問に+1 。これが a のtypedef
目的です。
typedef std::vector<std::vector<int> > MDVector;
MDVector multiDimensionalVector;
次のように a のtypedef
代わりに a を使用できます。#define
typedef complexClassName<PossiblyWithManyTemplateParameters> Name
Name var1;
Name var2;
Name var3;
長い名前を何度も入力したくない場合。