Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
редкоиспользуемых нововведениях в C++11 – смарт-поинтерах
std::vector<MyFileType>
может быть использовано только в С++11, т.к. у std::unique_ptr
есть только конструктор перемещения, т.е. в вектор его можно положить, если у того тоже он есть.auto lambda = [](HMODULE* instance){ FreeLibrary(*instance); };
auto my_instance = std::unique_ptr<HMODULE, decltype(lambda)>
(new HMODULE(LoadLibrary(_T("my_library.dll"))), lambda);
FreeLibrary(*instance) теперь просто заинлайнится.auto lambda = [](HMODULE* instance){ FreeLibrary(*instance); delete instance;};
auto lambda = [](HINSTANCE instance){ FreeLibrary(instance); };
auto my_instance = std::unique_ptr<HINSTANCE__, decltype(lambda)>
(LoadLibrary(_T("my_library.dll")), lambda);
Смарт-поинтеры и RAII на службе программиста