Я использую библиотеку stlport, которая переопределяет пространство имен std
следующим образом:
# if defined (_STLP_REDEFINE_STD)
/* We redefine "std" to "stlport", so that user code may use std:: transparently */
# undef std
# define std STLPORT
# else
Из-за этого, где бы в моем коде я не пытался использовать std::something
, онозаменяется на _STLP::something
.
Если я закомментирую строку #define std STLPORT
, код моего старого проекта не будет компилироваться (это зависит от stlport).
Если я не закомментирую строку, новая библиотека, которую я пытаюсь добавить, не скомпилируется, потому что она использует std::
с набором распределителей, отличным от того, который использует stlport.Типа столкновения.
Я пробовал #define STLPORT std
в строке перед включением новой библиотеки, но этот #define просто не работает.
Есть ли способ использовать обычный std
, как только он будет переопределен следующим образом?