We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7e3cbd4 commit 86e7ceeCopy full SHA for 86e7cee
lang/cpp23/static_operator.md
@@ -12,6 +12,8 @@
12
- `mutable`を同時に指定することはできない
13
- `const`メンバ関数ではなくなる
14
15
+これらを`static`として定義することで、演算子の呼び出しが高速化することを期待できる。
16
+
17
18
## 例
19
```cpp example
@@ -40,6 +42,13 @@ int main()
40
42
1
41
43
```
44
45
46
+## この機能が必要になった背景・経緯
47
+関数オブジェクトは関数ポインタに比べてインライン化しやすいため、パフォーマンスで有利である。しかし、関数オブジェクトがなんらかの理由でインライン化されない場合に、`this`ポインタを渡すための余分なレジスタを使わなければならない。
48
49
+状態をもたない関数オブジェクトでは`this`ポインタの受け渡しは必要なく、無駄である。必要ないもののためにコストを支払わないという基本的な思想に反していたため、`this`ポインタの受け渡しをなくせる機能として、`static`指定の許可を導入した。
50
51
52
## 関連項目
53
- [C++11 ラムダ式](/lang/cpp11/lambda_expressions.md)
54
- [`std::function::`推論補助](/reference/functional/function/op_deduction_guide.md)
0 commit comments