回答編集履歴
2
fix typo
answer
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
> ここで、taroとyukiのメンバ変数の比較は、[...]
|
10
10
|
> このようなとき、 if を20個書かずにスマートに解決したいです。
|
11
11
|
|
12
|
-
構造体同士の等値比較を行いたいのであれば、`operator=`オーバーロードを定義するのが自然です。同関数定義では結局メンバ変数を列挙しないといけませんが、利用側コードはすっきりします。
|
12
|
+
構造体同士の等値比較を行いたいのであれば、`operator==`演算子オーバーロードを定義するのが自然です。同関数定義では結局メンバ変数を列挙しないといけませんが、利用側コードはすっきりします。
|
13
13
|
|
14
14
|
|
15
15
|
```C++
|
@@ -19,7 +19,7 @@
|
|
19
19
|
int age;
|
20
20
|
bool married;
|
21
21
|
|
22
|
-
bool operator=(const Human& a, const Human& b) {
|
22
|
+
bool operator==(const Human& a, const Human& b) {
|
23
23
|
return (a.sex == b.sex) && (a.age == b.age) && (a.married == b.married);
|
24
24
|
}
|
25
25
|
};
|
1
change link url
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
(Chironianさん回答と同じですが)C++言語ではリフレクションをサポートしないため、素直な方法では不可能です。
|
4
4
|
|
5
|
-
[Boost.Fusionライブラリ](http://www.boost.org/libs/fusion/doc/html/index.html)を用いれば、[似たようなことを実現](
|
5
|
+
[Boost.Fusionライブラリ](http://www.boost.org/libs/fusion/doc/html/index.html)を用いれば、[似たようなことを実現](https://boostjp.github.io/tips/tuple.html#user-defined-type-as-tuple)できますが、本当にその方法が好ましいかは状況次第かと思います。
|
6
6
|
|
7
7
|
---
|
8
8
|
|