smart-pointers- все статьи тега
Понимание слабого счетчика ссылок
При создании shared_ptr объект диспетчера использует сильные и слабые счетчики ссылок. Я понимаю, что при использовании сильного счетчика ссылок shared_ptr знает, когда освободить управляемый объект, но я не понимаю, почему он использует слабый счетчик ссылок. ...
Как создать новое значение и назначить частному уникальному ptr в конструкторе класса?
Как создать новый и присвоить значение частному unique_ptr в конструкторе класса? Tyvm:^) Keith Мои лучшие усилия: #include <iostream> #include <memory> class A { public: A() {}; A(int); void print(); private: std::unique_ptr<int> int_ptr_; }; A::A(int a) { int_ptr_ = new int(a); } void A::print() { std::cout << *int_ptr_ << std::endl; } int main() { A a(10); a.print(); std::cout << std::endl; } Результат компилятора: ...
Какой указатель я использую, когда?
хорошо, так что в последний раз, когда я писал C++ для жизни,std::auto_ptr все СТД Либ был доступен, и boost::shared_ptr был весь гнев. Я никогда не заглядывал в другие типы интеллектуальных указателей, предоставляемые boost. Я понимаю, что C++11 теперь предоставляет некоторые из типов boost, но не все из них. Итак, у кого-то есть простой алгоритм, чтобы определить, когда использовать какой умный указатель? Предпочтительно включая советы относительно тупых указателей (необработанные указатели, ...
смарт-указатели (boost) объяснил
в чем разница между следующим набором указателей? Когда вы используете каждый указатель в производственном коде, если вообще используете? примеры будут оценены! scoped_ptr shared_ptr weak_ptr intrusive_ptr вы используете boost в производственном коде? ...
Есть ли польза для уникального ptr с массивом?
std::unique_ptr имеет поддержку массивов, например: std::unique_ptr<int[]> p(new int[10]); но нужно ли это? наверное, им удобнее пользоваться std::vector или std::array. вы находите какое-либо применение для этой конструкции? ...
Почему библиотеки и фреймворки C++ никогда не используют интеллектуальные указатели?
Я читал в нескольких статьях, что сырые указатели следует почти никогда не используется. Вместо этого они всегда должны быть завернуты в интеллектуальные указатели, будь то указатели с областью действия или общие указатели. однако я заметил, что такие фреймворки, как Qt, wxWidgets и библиотеки, такие как Boost, никогда не возвращаются и не ожидают интеллектуальных указателей, как будто они их вообще не используют. Вместо этого они возвращают или ожидают необработанные указатели. Есть ли для это ...
Какие реализации интеллектуального указателя C++ доступны?
сравнения, плюсы, минусы и когда использовать? Это спин-офф от поток сборки мусора где то, что я думал, было простым ответом, породило много комментариев о некоторых конкретных реализациях интеллектуальных указателей, поэтому казалось, что стоит начать новый пост. в конечном счете вопрос в том, каковы различные реализации интеллектуальных указателей в C++ и как они сравниваются? Просто плюсы и минусы или исключения и gotchas к чему-то, что вы могли бы иначе думать, должно работать. я опублик ...
Пример использования общего ptr?
Привет я задал вопрос сегодня о как вставить различные типы объектов в один и тот же векторный массив и мой код в этот вопрос gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual void Run() { //A virtual function } }; class ANDgate :public gate {..... ....... void Run() { //AND version of Run } }; class ORgate :public gate {..... ....... void Run() { ...