📄 smart_ptr.h
字号:
/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */#ifndef SMART_PTR_H#define SMART_PTR_H#include <memory>#include <boost/shared_ptr.hpp>namespace smart_ptr { struct C{ int value;};inline boost::shared_ptr<C> NewC() { return boost::shared_ptr<C>( new C() ); }struct D{ boost::shared_ptr<C> Get() { return ptr; } void Set( boost::shared_ptr<C> c ) { ptr = c; }private: boost::shared_ptr<C> ptr;};inline std::auto_ptr<D> NewD() { return std::auto_ptr<D>( new D() ); }// test an abstract classstruct A{ virtual int f() = 0;};struct B: A{ virtual int f(){ return 1; }};inline boost::shared_ptr<A> NewA() { return boost::shared_ptr<A>(new B()); }inline int GetA(boost::shared_ptr<A> a) { return a->f(); }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -