how to overcome make_shared constness
===

I'v faced with some problem, and can't decide what is the correct solution.

Here is the code example for illustration:

    #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));
    
    }

The problem is I cant create shared_ptr instance because of make_shared  gets and downpasses arguments to TestClass constructor as "const A1&, const A2&,..." as documented:

    template<typename T, typename Arg1, typename Arg2 >
        shared_ptr<T> make_shared( Arg1 const & arg1, Arg2 const & arg2 );


I can trick with boost::shared(new ...) or rewrite constructor for const references, but seems that's not the way it should be.

Thnx in advance!