__ ФАЙЛ __ макро-управление, обрабатывающее во время компиляции

Я установил и Smultron и Textwrangler, но использую Smultron большую часть времени.

23
задан Bastien Léonard 10 November 2009 в 08:39
поделиться

2 ответа

В настоящее время нет способа выполнить полную обработку строки во время компиляции (максимум, с которым мы можем работать в шаблонах, - это странные четырехсимвольные литералы).

Почему бы и нет. просто сохраните обработанное имя статически, например:

namespace 
{
  const std::string& thisFile() 
  {
      static const std::string s(prepocessFileName(__FILE__));
      return s;
  }
}

Таким образом, вы выполняете работу только один раз для каждого файла. Конечно, вы также можете заключить это в макрос и т. Д.

10
ответ дан 29 November 2019 в 00:56
поделиться

вы можете попробовать макрос __ BASE_FILE __ . Эта страница описывает множество макросов, которые поддерживает gcc.

8
ответ дан 29 November 2019 в 00:56
поделиться