庫提供了一個派生類,作爲模板參數派生。製作庫時應避免使用MACRO
例子:
class userclass : public lib::superclass<userclass>
{}
正如你可以看到它的相當多的輸入。而且,「用戶類」應該始終作爲公共派生出來,才能正常工作。所以我想出了兩個看起來像這樣的MACRO:
#define SUPER(x) public lib::superclass<x>
#define SUPERCLASS(x) class x : public lib::superclass<x>
用戶現在可以輸入任意一個。
class userclass : SUPER(userclass)
{}
SUPERCLASS(userclass)
{}
但是,主要的問題是,包含頭文件時,宏SUPER和SUPERCLASS存在於用戶全局名稱空間中。
可以/我應該:
- 有保留的命名空間要求,但仍然默認爲公衆導出的一種方式?
- 原樣使用這些宏。
- 只需要用戶寫出完整的「public lib :: superclass」。
我正在使用vs 11,該庫針對Windows開發人員。
我做了很多維護工作。宏觀用戶位於恐怖分子,毒販,兒童虐待者和PHP開發者之下的階梯上。 –
@MartinJames:哪一個位於頂端,恐怖分子還是PHP開發人員? ;-) – rodrigo
說實話,我認爲虐待兒童的人比PHP低,儘管其中並沒有很多。 –