std::is_same
é um recurso do C ++ 11. O Ubuntu 12.04 tem o GCC 4.6.3, que tem apenas C ++ 0x incompleto (ainda não C ++ 11) Apoio, suporte. Você pode tentar especificando o padrão:
g++ --std=c++0x ...
Eu tenho um projeto pequeno e recebo um erro "is_same" não é membro de "std" ao criar. isso é algum código:
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;
}
Qualquer um pode me ajudar. Eu incluí o cabeçalho #include <type_traits>
. Obrigado.
std::is_same
é um recurso do C ++ 11. O Ubuntu 12.04 tem o GCC 4.6.3, que tem apenas C ++ 0x incompleto (ainda não C ++ 11) Apoio, suporte. Você pode tentar especificando o padrão:
g++ --std=c++0x ...