Одна из проблем, которые я испытывал при переносе некоторых вещей из Solaris в Linux, заключается в том, что компилятор Solaris расширяет макрос __FILE__
во время предварительной обработки имени файла (например, MyFile.cpp), тогда как gcc в Linux расширяется до полного путь (например,/home/user/MyFile.cpp). Это можно легко разрешить с помощью basename(), но.... если вы используете его много, то все те обращения к basename() должны складываться, не так ли?
Вот вопрос. Есть ли способ использования шаблонов и статического метапрограммирования, для запуска basename() или подобного во время компиляции? Поскольку __FILE__
является постоянным и известен во время компиляции, это может сделать его проще. Как вы думаете? Это можно сделать?