c++ - Initialise static data members using lambda function -
i new concept of using lambda functions in c++. aim initialise static data member array of objects using lambda function. below code -
#include <iostream> class b { public: b() {std::cout << "b called" <<std::endl;} b(int y){std::cout << "b int called" <<std::endl;} }; class { public: a(){std::cout << "called" << std::endl;} static b bobj[256]; }; b bobj[256] = [] () {for (int = 0 ; < 256; i++) { bobj[i] = new b(2)}}; int main() { a; }
but getting compilation error 'ambiguous overload ‘operator=’ (operand types ‘b’ , ‘b*’)' , others.
how can code lambda function initialise array of objects?
i think see @ least one of problems. definition of bobj
array of b
objects:
b bobj[256]
yet trying assign pointer-to-b (by using new
):
bobj[i] = new b(2)
i believe that's cause of error you've shown, ambiguous overload 'operator=' (operand types 'b' , 'b*')
. "others" mention can't comment on, because haven't shown them :-)
Comments
Post a Comment