回答編集履歴
1
描画崩れを修正
answer
CHANGED
@@ -8,15 +8,15 @@
|
|
8
8
|
|
9
9
|
演算子オーバーロードの制限や不利な点は、以下のようなところです:
|
10
10
|
|
11
|
-
- 規定の個数を超えるオペランドを扱えない
|
11
|
+
- 規定の個数を超えるオペランドを扱えない
|
12
|
-
|
12
|
+
たとえば、配列において`ar[i]`はできますが、行列型に対して`m[x, y]`のような指定はできません
|
13
|
-
|
13
|
+
たとえば、浮動小数点数の等値比較において`a == b`という2つのパラメータしか扱えないため、誤差をどこまで許容するか、のようなパラメータは指定できません
|
14
14
|
- ADLに依存してしまう
|
15
15
|
- 短絡評価をハンドリングできない (`operator||`、`operator&&`)
|
16
|
-
- 組み込み型の演算子と意味論に制限されてしまう
|
16
|
+
- 組み込み型の演算子と意味論に制限されてしまう
|
17
|
-
|
17
|
+
C++以外の分野(たとえば数学)で広く採用されている演算子があり、それを採用できない
|
18
|
-
|
18
|
+
例として、累乗を扱う`**`演算子や、論理学で「PならばQ」を表す`→`演算子、ディレクトリ区切りの`/`、区間を表す`[a, b)`のようなカッコなど、やりたいことは無数にあります
|
19
|
-
|
19
|
+
演算子に独自の意味を持たせるためのルール付けが何かしらあれば、特定分野のコードがより書きやすくなるでしょう
|
20
20
|
|
21
21
|
##参照
|
22
22
|
- [Boost Filesystem Library](http://www.boost.org/doc/libs/1_63_0/libs/filesystem/doc/index.htm)
|