После примерно 10 лет использования управляемой памяти и функциональных языков я наконец-то вернулся домой на C ++, и умные указатели выводят меня из себя.Половина документации по-прежнему относится к устаревшей auto_ptr
.
Я пытаюсь реализовать эту довольно простую программу Bullet "hello world" :
int _tmain(int argc, _TCHAR* argv[])
{
auto bp = unique_ptr<btBroadphaseInterface>(new btDbvtBroadphase);
auto cc = unique_ptr<btDefaultCollisionConfiguration>(new btDefaultCollisionConfiguration);
auto disp = unique_ptr<btDispatcher>(new btCollisionDispatcher(cc));
}
Конструктор btCollisionDispatcher
хочет btCollisionConfiguration*
, но вместо этого я даю ему unique_ptr
.
Что я обычно хочу делать в этом случае?Если есть способ «де-умного» указателя, что-то подсказывает мне, что unique_ptr
не является правильным умным указателем для использования.
C ++ был моим языкомвыбор, прежде чем я перешел к другим вещам.Это немного шокирует, когда я возвращаюсь и вижу, что все модели и практики полностью изменились.