Ошибка: ‘is_same’ не является членом 'станд.', когда разрабатывают проект C++ в человечности?

У меня есть маленький проект, и я добираюсь, ошибка ‘is_same’ не является членом 'станд.' при создании. это - некоторый код:

template <class T>
T* UcmExportFactory::Unwrap (T* ptr)
{
    Utils::IUcmWrapper* wrapper = dynamic_cast<Utils::IUcmWrapper*> (ptr);

    // If the requested Ucm inteface is derived from an another (such as IUcmV from IUcmUnionValue), specify that whether we want the base class pointer or not.
    bool interfaceForAbstractBase = (std::is_same<IUcmUnionValue, T>::value || std::is_same<IUcmDiagCodedType, T>::value);
    return (wrapper) ? boost::any_cast<T*> ( wrapper->GetWrappedObject (interfaceForAbstractBase) ) : ptr;
}

Любой может помочь мне. Я включал заголовок #include <type_traits>.Спасибо.

2
задан 30 June 2015 в 06:18

2 ответа

std::is_same C++ 11 функций. Ubuntu 12.04 имеет GCC 4.6.3, который еще имеет только неполный C++ 0x (C++ 11) поддержка. Можно попробовать путем определения стандарта:

g++ --std=c++0x ...
1
ответ дан 2 December 2019 в 05:04

Просто напоминание всем, кто заходит на эту страницу, поскольку ОП заявил, что он сделал это:

Вы также получите эту ошибку, если не включите type_traits, так что не забывайте, что:

#include <type_traits>
0
ответ дан 10 March 2020 в 23:21

Другие вопросы по тегам:

Похожие вопросы: