4
A
回答
4
如果您不需要編譯時間常數,你可以做這樣的事情枚舉類:
int counter() {
static int i = 0;
return i++;
}
template<class T>
int id() {
static int i = counter();
return i;
};
class A {};
class B {};
int main()
{
std::cout << id<A>() << std::endl;
std::cout << id<B>() << std::endl;
}
2
static int PUT_AN_UNUSED_NAME_HERE = 0;
#define ADEFINE (++PUT_AN_UNUSED_NAME_HERE)
+4
雖然這不是編譯時間。 – GManNickG 2010-01-16 09:05:42
11
您可以使用__COUNTER__
,雖然它不是標準。 MSVC++和GCC都支持它。
如果你可以使用提振,pre-processor library有計數器的實現。下面是從文檔的例子:
#include <boost/preprocessor/slot/counter.hpp>
BOOST_PP_COUNTER // 0
#include BOOST_PP_UPDATE_COUNTER()
BOOST_PP_COUNTER // 1
#include BOOST_PP_UPDATE_COUNTER()
BOOST_PP_COUNTER // 2
#include BOOST_PP_UPDATE_COUNTER()
BOOST_PP_COUNTER // 3
(工藤對GF)
0
相關問題
- 1. 的#define在加速的Jamfiles
- 2. #define
- 3. 的#define遠,近的#define WINDEF.H
- 4. Scheme define-macro和/或define-syntax
- 5. #ifndef #define
- 6. 'typeof define ==='function'&& define ['amd']'用於什麼?
- 7. 使用特定標誌時添加#define
- 8. 想要添加通用代碼,如#define
- 9. 增加
- 10. 增加DIV作爲其含量增加
- 11. 在JConsole增加總卸載類增加
- 12. 的#define DEBUG 1
- 13. testing #define CONSTANT
- 14. 剝離的#define
- 15. Php Define Websend
- 16. #define related Query
- 17. C++ #define LPWSTR?
- 18. 奧的#define宏
- 19. 在define-struct
- 20. PHP define()函數
- 21. Specman - Define long var
- 22. C++ define changeable宏
- 23. #define或const string *
- 24. #define for unsigned long
- 25. Javascript Cookie define Path
- 26. 請定義#define
- 27. 用的#define
- 28. #pragma inside #define
- 29. DEFINE()在expressinions
- 30. devenv和#define
用於什麼?根據你的情況可能有更好的方法。 – GManNickG 2010-01-16 08:56:28
我想給每個班級一個唯一的號碼。 – user230821 2010-01-16 09:03:38
你需要一個不斷變化和unqie編譯時常量,然後呢? – GManNickG 2010-01-16 09:04:39