c++ MACRO singletone function result に設定するのに問題があります。これは私が持っているものです:
マクロ
#define CCDICT_FOREACH(__dict__, __el__) \
CCDictElement* pTmp##__dict__##__el__ = NULL; \
if (__dict__) \
HASH_ITER(hh, (__dict__)->m_pElements, __el__, pTmp##__dict__##__el__)
そして、これは私がそれを設定しようとする方法です:
CCDictElement* pElement = NULL;
CCDICT_FOREACH(GameSingleTone::getInstance()->getGemsDictionary(), pElement)
{
}
メソッド getGemsDictionary() は私を返します:
CCDictionary*,gemsDictionary
;
私が得ているコンパイルエラーは(MACROの行にあります):
error C2143: syntax error : missing ';' before '{'
しかし、もしそうなら:
CCDictionary* tempDictionary = CCDictionary::create();
tempDictionary = GameSingleTone::getInstance()->getGemsDictionary();
CCDICT_FOREACH(tempDictionary , pElement)
{
}
すべてが機能しています。
なぜ ?