Joa*_*son 6 c++ boost casting smart-pointers
我怎样才能施放boost::shared_array<char>到boost::shared_array<const char>?
由于shared_array没有add_ref方法,您可以按如下方式模拟它:
struct MagicDeleter {
MagicDeleter( boost::shared_array<char> ptr ) : ptr(ptr) {};
template<typename T> void operator()(T*) {}
protected:
boost::shared_array<char> ptr;
};
...
boost::shared_array<char> orig_ptr( some_val );
boost::shared_array<const char> new_ptr( orig_ptr.get(), MagicDeleter(orig_ptr) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |