→ VictorTom:好帥的方法XD 05/17 23:19
※ 引述《loveflames (咕啾咕啾魔法陣)》之銘言:
: 其實是為了嘗試不用template在編譯期算出1+...+10
: 差在不能取之前定義的值
以下提供一種解法 不知道是否符合需求
可利用 __INCLUDE_LEVEL__ 這個macro 取得目前include深度
不過這個是 gnu c 的preprocessor限定
但其他的preprocessor可能也會有類似的東西可以用
//precomp.h
#if __INCLUDE_LEVEL__ <= TERMINAL_CONDITION
+__INCLUDE_LEVEL__
#include __FILE__
#endif
//test.cpp
#include <cstdio>
int main()
{
#define TERMINAL_CONDITION 100
int v = (
#include "precomp.h"
);
#undef TERMINAL_CONDITION
std::printf("OUTPUT = %d\n", v);
return 0;
}
//OUTPUT
OUTPUT = 5050
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.122.237
※ 編輯: acrt3820 來自: 140.113.122.237 (05/17 23:15)