以下の例はinitializer_list経由でリストの 配列を取り,リストの値はラムダ式のpredを使いソート,そして指定された関数で出力する例.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
class Tako {
private:
vector<signed> v;
public:
Tako(initializer_list<signed> listVal);
virtual ~Tako() {}
void dump(void (f)(const signed));
void sort();
};
Tako::Tako(initializer_list<signed> listVal) {
for (auto a : listVal) {
v.push_back(a);
}
}
void Tako::dump(void (f)(const signed)) {
for (auto x : v) {
f(x);
}
}
void Tako::sort() {
if (v.size() >= 2) {
std::sort(v.begin(), v.end(), [](signed x, signed y)-> signed { return x > y; });
}
}
void dump_to_stdout(const signed v) {
cout << v << endl;
}
int main() {
Tako t = { 32, 27, 30, 50, 64, 10 };
void(*myfunc)(signed) = dump_to_stdout;
t.sort();
t.dump(myfunc);
}