Я установил и Smultron и Textwrangler, но использую Smultron большую часть времени.
В настоящее время нет способа выполнить полную обработку строки во время компиляции (максимум, с которым мы можем работать в шаблонах, - это странные четырехсимвольные литералы).
Почему бы и нет. просто сохраните обработанное имя статически, например:
namespace
{
const std::string& thisFile()
{
static const std::string s(prepocessFileName(__FILE__));
return s;
}
}
Таким образом, вы выполняете работу только один раз для каждого файла. Конечно, вы также можете заключить это в макрос и т. Д.
вы можете попробовать макрос __ BASE_FILE __
. Эта страница описывает множество макросов, которые поддерживает gcc.