私は何らかの問題に直面しており、正しい解決策が何であるかを判断できません。ここでmake_shared constnessを克服する方法
は、説明のためのコード例です:
#include <boost/make_shared.hpp>
#include <boost/shared_ptr.hpp>
class TestClass{
public:
int a;
TestClass(int& a,int b){};
private:
TestClass();
TestClass(const TestClass& rhs);
};
int main(){
int c=4;
boost::shared_ptr<TestClass> ptr;
//NOTE:two step initialization of shared ptr
// ptr=boost::make_shared<TestClass>(c,c);// <--- Here is the problem
ptr=boost::shared_ptr<TestClass>(new TestClass(c,c));
}
問題は「constのA1 &、constのA2 &、などTestClassをコンストラクタに引数を取得し、downpassesためmake_sharedの私はshared_ptrのインスタンスを作成カントです... 「文書化:
template<typename T, typename Arg1, typename Arg2 >
shared_ptr<T> make_shared(Arg1 const & arg1, Arg2 const & arg2);
私は共有::ブーストとトリック(新...)またはconstの参照のコンストラクタを書き換えるが、それはそれがあるべき姿ではないと思われることができます。
Thnxです。
の\ _SHAREDはconst参照になります[ブーストメイクの可能な重複を。これを回避する方法は?](http://stackoverflow.com/questions/1373896/boost-make-shared-takes-in-a-const-reference-anyway-to-get-around-this) – BenC