[英]how to append to __FILE__ at preprocessor time and include the result
我想包括component.h.gen
從component.h
。
我已經看到我可以將__FILE__
與#include
一起使用,並且如果沒有標題保護,則會導致遞歸包含。
有沒有辦法附加C字符串文字並包含結果? 到目前為止,這是我嘗試過的:
#define CAT_IMPL(s1, s2) s1##s2
#define CAT(s1, s2) CAT_IMPL(s1, s2)
#define DO_IT CAT(__FILE__, ".gen")
#include DO_IT
但這會導致包括文件本身在內的文件具有相同的遞歸- ".gen"
部分未使用-我在MSVC中收到以下警告:
警告C4067:預處理指令后出現意外的標記-預期換行
有沒有可以與gcc / clang / msvc一起使用的解決方案?
請注意,我打算在數百個(甚至數千個)文件中使用它,並且我想通過復制粘貼相同的代碼來簡化我的工作,這就是為什么我要使其正常工作。
不幸的是,這是不可能的:
__FILE__
擴展為字符串; 您不能取消字符串的字符串化。 因此,僅添加字符串的“其余”然后對結果進行字符串化的技術不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.