У меня есть код на C++ вдоль линийЕсть ли способ изменить препроцессор C, какую версию STL я использую?
#include<vector>
std::vector<double> foo;
мне нужно скомпилировать этот код для встраиваемых платформ, которая использует пользовательский реализация STL называется uSTL. Для его использования требуется #include
с заголовком ustl.h
и all STL classes are defined in another namespace. Поэтому приведенный выше фрагмент кода должен стать
#include<ustlh.>
ustl::vector<double> foo;
Я не хочу, чтобы изменить исходный код, потому что код библиотеки используется другими не-встроенных приложений. Я думал использовать препроцессор C для преобразования #include<vector>
в #include<ustl.h>
, но это кажется невозможным (имена макросов должны быть действительными идентификаторами).
Есть ли другой способ препроцессора C сделать это? Или есть другой способ, который не подразумевал бы изменение исходного исходного кода?