PG日誌

読者です 読者をやめる 読者になる 読者になる

PG日誌

主にc#の事を書いています

cocos2d-xのUSING_NS_CCについて

c/c++ cocos2d-x

cocos2d-xのUSING_NS_CCはCCPlatformMacros.hに以下のように定義されています。

#ifdef __cplusplus
    #define NS_CC_BEGIN   namespace cocos2d {
    #define NS_CC_END     }
    #define USING_NS_CC   using namespace cocos2d
    #define NS_CC         ::cocos2d
#else
    #define NS_CC_BEGIN 
    #define NS_CC_END 
    #define USING_NS_CC 
    #define NS_CC
#endif

c++で開発するのでこの行が宣言になります。

#define USING_NS_CC using namespace cocos2d

大抵のクラスが見つからないエラーは#inclideの直後にUSING_NS_CCって書けば収まります。

が、ただ、この宣言をマクロで定義する意味ってあるんですかね・・・?

後で変わる可能性がある説

cocos2dという名前空間が後から変わる事がある、もしくはその予定があるって事だったらそんな変更するなよと言いたい。
むしろc++じゃない言語(つまりC言語?)で開発しない(できない)のでは・・・?(そしてc++じゃないときはUSING_NS_CCって空宣言で意味ないじゃん)

タイピング数を減らす説

ただ単にそのほうがタイピング文字数が少ないでしょって事なのかしら?

それで?

もし後者だったら標準の構文の言い換えに過ぎません。

ただ単に覚えることが余計に1つ増えるだけだし、標準の構文をマクロで置き換えるのはわりとやっちゃいけないことの部類なのでむしろ有害です。

普通に using namespace cocos2d って書いたほうがよいと思います。

広告を非表示にする