mardi 5 avril 2016

error C2065: 'static_pointer_cast' : undeclared identifier - Visual Studio 2010

I am trying to execute static cast to superclass using C++11 std pointer library.

For classes:

class ImportFileSetting {};
class ImportFileSettingSelect:ImportFileSetting {}

I fail to compile following code:

std::shared_ptr<ImportFileSettingSelect> selectedSheet_ = std::make_shared<ImportFileSettingSelect>();
std::vector<std::shared_ptr<ImportFileSetting>> settings_;
settings_.push_back(static_pointer_cast<ImportFileSetting>(selectedSheet_));

This is done according to cpprefference.com. The error is:

5>src\TechAdminServices\database\techCore\processes\ImportDataSourceExcel.cpp(32): error C2065: 'static_pointer_cast' : undeclared identifier
5>src\TechAdminServices\database\techCore\processes\ImportDataSourceExcel.cpp(32): error C2275: 'ImportFileSetting' : illegal use of this type as an expression
5>          d:\techsys\techadmin\techadminservices\src\techadminservices\database\techcore\processes\ImportFileSetting.h(7) : see declaration of 'ImportFileSetting'

Aucun commentaire:

Enregistrer un commentaire