1
我在C++代碼一起的有沒有辦法讓C預處理器改變我使用的STL實現?
#include<vector>
std::vector<double> foo;
我需要編譯這個代碼,它使用STL的自定義實現所謂uSTL嵌入式平臺的線。使用它需要 ustl.h
頭文件和all STL classes are defined in another namespace。因此,上面的代碼應該成爲
#include<ustlh.>
ustl::vector<double> foo;
我不想修改源代碼,因爲它是由其他非嵌入式應用中的庫代碼。我正在考慮使用C預處理器將#include<vector>
轉換爲#include<ustl.h>
,但這似乎是不可能的(宏名稱必須是有效的標識符)。
是否有另一種方法讓C預處理器執行此操作?還是有另一種方式,並不意味着修改原始源代碼?