teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

fix typo

2017/05/19 06:01

投稿

yohhoy
yohhoy

スコア6191

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

2017/05/19 06:01

投稿

yohhoy
yohhoy

スコア6191

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)を用いれば、[似たようなことを実現](http://faithandbrave.hateblo.jp/entry/20090805/1249460403)できますが、本当にその方法が好ましいかは状況次第かと思います。
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