struct MyStruct
{
int parametr;
MyStruct(int p) : parametr(p) { std::cout << "Konstruktor"; };
~MyStruct() { std::cout << "Destrukor"; }
bool operator()(int r) { return r > parametr; };
};
int main()
{
std::vector<int> vec(10);
std::iota(vec.begin(), vec.end(), 0);
int ile = std::count_if(vec.begin(), vec.end(), MyStruct(5));
std::cout << ile;
}
Dlaczego po wykonaniu programu aż dwa razy wypisuje "Destruktor"?