0
我试图smart_pointer通过作为模板参数比使用动态铸造等类型..传递一个模板智能指针类型作为模板参数
但还有一个更抓smart_pointer可以有很多类型,如性病: :shared_ptr,boost :: shared_ptr,std :: weak_ptr等等。
那么我想最终是正确的语法替换typename SmartPointerType<DerivedClass>
:
template < typename SmartPointerType<DerivedClass> >
std::vector<SmartPointerType<DerivedClass>> filterByType()
{
std::vector<SmartPointerType<DerivedClass>> newList;
for (int i = 0; i < iTerrainList.size(); i++)
{
SmartPointerType<DerivedClass> castedTerrain = Cast<DerivedClass>(iTerrainList[i]);
if (castedTerrain)
newList.push_back(castedTerrain);
}
return newList;
}
“铸<>()”接受任何类型的智能指针我感兴趣BTW的。
我发现我可以使用类似
template <template <typename Type> class TemplateType>
但它并没有与我的C++编译器03工作了。
我知道我可以使用“.get()”,但我很好奇,如何在没有“.get()”的情况下使其工作。
我不知道element_type特征。非常好的答案。 –