#include #include #include using namespace std; class EvenHolder { public: void CopyIL(initializer_list newData) { for(auto x: newData) { if (x%2==0){ data.push_back(x); } } } EvenHolder(initializer_list newData) { CopyIL(newData); return; } void ForceFill(initializer_list newData) { data = newData; return; } EvenHolder & operator = (initializer_list other) { data.erase(data.begin(), data.end()); CopyIL(other); return * this; } void Print(void) const { bool first = true; for(auto x: data) { if(first) { first = false; } else { cout << " "; } cout << x; } cout << endl; return; } private: vector data; }; int main() { EvenHolder a = {1,2,3,4,5,6,7,8}; a.Print(); a.ForceFill({1,2,3,4}); a.Print(); a = {1,2,3,4,5,6}; a.Print(); // this is wierd, will it work? for(auto x: {'a','b','d','q'}) { cout << x << " "; } cout << endl; return 0; }