看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
VictorTom:好帥的方法XD 05/17 23:19