マップを作成しました。別のスレッドでそのマップが必要なので、マップを指すポインタを作成して他のスレッドに送ります。しかし、マップの値がNULL(Pointer)でないかどうか調べたいときにエラーが発生します。ポインタマップ内のポインタが0でないかどうかを調べる方法
これは、例えば、codeeです:
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main()
{
int test = 1;
map<int,void *> handle;
map<int,void *> * handle2;
handle[0] = &test;
handle2 = &handle;
if(*handle2[0])
{
cout << "Works\n";
}
system("Pause");
return false;
}
これは私が取得エラーです:
エラーC2451:タイプの条件式 'のstd ::マップ< _Kty、_Ty>' は違法
ですこの場合、ポインタを0にするにはどうすればよいですか?
ところでG ++エラーが '** handle2''」の '演算子*' には一致していませんこれは演算子の優先順位の問題であることを(少なくとも私に)明確にしています...それは私が知っているのですが、コード内でシステム(「一時停止」)を見るといつも不快に感じます。それが不要であると感じる方法を見つける(その "必要性"はちょうど道yから来るから) – ShinTakezou