同时使用带有-std = c11的gcc和带有-std = c ++ 14的g ++.
例如,对于一个名为src/dir/Hello.cxx它的文件,它应该扩展为例如:
const char basename[] = "Hello";
Run Code Online (Sandbox Code Playgroud)
要么
const char basename[] = getStaticBasename(__FILE__);
Run Code Online (Sandbox Code Playgroud)
如何getStaticBasename()是一个宏(对于C源)或constexpr函数(对于C++源),其结果为"Hello".
我必须避免__FILE__在运行时拆分字符串,因为路径和后缀不能以任何方式编译到可执行文件中.
解决方案必须不依赖于大型库,例如boost.
因为我没有makefile,所以在我的情况下不能使用这样的解决方案.
有人有解决方案吗?
编辑2015-07-02:
#include <Joe/Logger.h>在后面的调用中,例如LOG_DEBUG(...)我将隐含地使用自动生成的"通用区域标识符".JOE_LOG_FILE_REGION(Hello);(之后#include <Joe/Logger.h>)LOG_DEBUG(...).