shared-ptr

    0熱度

    1回答

    我有一個接口Interface。 我也有.h文件InterfaceFwd.h它看起來像 #ifndef Blah #define Blah #include <boost/shared_ptr.hpp> class Interface; typedef boost::shared_ptr<Interface> InterfacePtr; #endif 我也有Interface.h #

    4熱度

    1回答

    我有一個容器shared_ptr s和我把這些對象關閉到一個Windows API和我以後與原始ptr回調。事實之後,我想找到正確的shared_ptr。這可以通過shared_ptr乾淨地完成嗎? (不使用shared_from_this())。 非常簡單的例子: class CFoo { }; typedef std::shared_ptr<CFoo> CFooPtr; typedef

    2熱度

    1回答

    class A : boost::noncopyable { int type; A(int type, enum e) : type(type) { /* ... */ } } typedef boost::shared_ptr<A> A_ptr; template <enum VAR> class B : boost::noncopyable { s

    3熱度

    6回答

    鑑於類Foo template <typename T> class Foo { public: ...other methods.. void bar() { ... m_impl.doSomething(); ... } void fun() { ... m_impl.do

    10熱度

    4回答

    以下兩段代碼是否有區別?他們中的任何一個比另一個更可取? 運營商= boost::shared_ptr<Blah> foo; // foo.ptr should be NULL foo = boost::shared_ptr<Blah>(new Blah()); // Involves creation and copy of a shared_ptr? 重置 boost::shared_p

    1熱度

    2回答

    將自定義相等運算符和std :: list一起使用共享指針似乎存在問題。 我把下面的示例代碼放在一起來演示這個問題。 之前試圖編譯如下: 我使用gcc version 4.5.2 20110127 用以下命令行:如果C++ 0x特性的AREN g++ -g -O0 -std=gnu++0x test.cpp 源將無法編譯沒有啓用。 #include<list> #include<boost/sh

    2熱度

    2回答

    首先應該起作用,然後不起作用。爲什麼這不是問題。 我聲明瞭兩個類: class Base { ... }; class Derived : public Base { ... }; 然後我有以下功能別處: void foo(shared_ptr<Base> base); 下面的代碼應該工作的權利? share_ptr<Derived> derived; foo(derived);

    0熱度

    3回答

    我在我的應用程序設計中使用shared_ptr,並且我有越來越多的對象變成堆分配而不是堆棧上的簡單對象(或更復雜對象的聚集)的趨勢。 而不是簡單的(但有可能Foo :: bar會在更復雜的情況下變成懸掛參考)... struct Bar { }; struct Foo { Foo(Bar& bar) : bar(bar) { }; Bar& bar; }; int main() {

    2熱度

    1回答

    我有AA功能,基本上可以歸結爲這個(即我與掙扎的部分,忽略了實際發生的事情) class CellSorter { public: bool operator()(std::shared_ptr<const Cell> a, std::shared_ptr<const Cell> b) const { return ((a->GetY() <

    7熱度

    4回答

    已經有幾個關於這個主題的問題,但我仍然不確定該怎麼做:我們的代碼庫在很多地方使用shared_ptr。我不得不承認,我們在寫作時沒有明確界定所有權。 我們有像 void doSomething(shared_ptr<MyClass> ptr) { //doSomething() is a member function of a class, but usually won't st