Here this should be declared as public in pb_variable
class pb_variable_array : public std::vector<pb_variable<FieldT> >
instead of
class pb_variable_array : private std::vector<pb_variable<FieldT> >
Also,
class pb_linear_combination_array : public std::vector<pb_linear_combination<FieldT> >
instead of
class pb_linear_combination_array : private std::vector<pb_linear_combination<FieldT> >
Here, all members of std::vector<pb_variable> are private, so you can't access them from outside of pb_variable_array.
Here this should be declared as public in pb_variable
class pb_variable_array : public std::vector<pb_variable<FieldT> >
instead ofclass pb_variable_array : private std::vector<pb_variable<FieldT> >
Also,
class pb_linear_combination_array : public std::vector<pb_linear_combination<FieldT> >
instead ofclass pb_linear_combination_array : private std::vector<pb_linear_combination<FieldT> >
Here, all members of std::vector<pb_variable> are private, so you can't access them from outside of pb_variable_array.