Главная » C++ » Demangling и & lt; sstream & gt; приводит к "неоднозначной ссылке на пространство имен __gnu_gxx"
Demangling и & lt; sstream & gt; приводит к «неоднозначной ссылке на пространство имен __gnu_gxx»
Когда мне нужно напечатать информацию о типе во время выполнения, я всегда применяю demangling к std::type_info::name() результат. Это реализация для GCC, которая использует abi::__cxa_demangle():
Сегодня я писал to_string Шаблон, который позволяет мне печатать содержимое списка типов. Чтобы избежать std::stringконкатенации, я использовал поток строк, std::ostringstream:
_to_string шаблон класса, который реализует operator<<для рекурсивной печати содержимого списка типов в поток. (Я не включаю его, чтобы не переполнять пост не связанным кодом метапрограммирования).
Это работает отлично без разбора. Когда я включаю <cxxabi> чтобы реализовать деминглинг, компилятор показывает ambiguous reference to __gnu_gxx namespace ошибка в sstream.h,