how to initialize a vector member variable of reference_wrapper inside a class?

279 Views Asked by At

How to initialize a vector of reference_wrapper member variable in a class. I have tried to initialize with a vector in constructor initialisation_list.

 class Test
    {
    public:
        Test(std::vector<int> vec) :vec_r(begin(vec), end(vec)) // not working
        {
        }
        std::vector<std::reference_wrapper<int>> vec_r; //member variable
    };

    int main()
    {
        std::vector<int> v{ 1,2,3 };
        Test testObj(v);
        
        std::cout << testObj.vec_r[0].get() <<'\n'; // prints unintialised value 
        std::cout << testObj.vec_r[1].get() <<'\n'; // prints unintialised value 
        std::cout << testObj.vec_r[2].get() <<'\n'; // prints unintialised value 
        return 0;
    }

Is there any other way to initialize a 'reference_wrapper' vector in a class?

0

There are 0 best solutions below