あと、良く分からないのが、
struct CPerson {
・・・
CPerson(int a, int b, int c) {・・・} //(1)
};
とあった場合、
1. CPerson a{1,2,3};
2. CPerson a={1,2,3};
3. CPerson a=CPerson{1,2,3};
のどれを書いても多分、(1)が呼び出される気がするけど、
struct CPerson {
・・・
CPerson(initializer_list<int> a) {・・・} //(2)
};
と書いた場合、1,2,3 はやはり全て(2)が呼び出されるのだろうか?