File tree Expand file tree Collapse file tree 2 files changed +35
-1
lines changed
Expand file tree Collapse file tree 2 files changed +35
-1
lines changed Original file line number Diff line number Diff line change 1+ # abs-if-needed
2+
3+ * linalg[ meta header]
4+ * function[ meta id-type]
5+ * std::linalg[ meta namespace]
6+ * cpp26[ meta cpp]
7+
8+ ## 概要
9+ ` abs-if-needed ` は、必要に応じて絶対値を計算する、説明専用の関数オブジェクトである。
10+
11+ 型` T ` の式` E ` に対して、式` abs-if-needed(E) ` は次と等価である。
12+
13+ 1 . もし` T ` が符号なし整数なら、` E `
14+
15+ 2 . そうでない場合、もし` T ` が算術型なら、` std::abs(E) `
16+
17+ 3 . そうでない場合、式` abs(E) ` が下記宣言を含むコンテキストにおいてオーバーロード解決を行った結果が妥当であるとき、` abs(E) `
18+ ``` cpp
19+ template <class T > T conj (const T&) = delete;
20+ ```
21+
22+
23+ ## 備考
24+ オーバーロード解決により選択された関数が入力値の絶対値を返さないとき、プログラムは不適格となる。
25+
26+
27+ ## バージョン
28+ ### 言語
29+ - C++26
30+
31+
32+ ## 参照
33+ - [ P1673R13 A free function linear algebra interface based on the BLAS] ( https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p1673r13.html )
34+
Original file line number Diff line number Diff line change 4444
4545
4646## 適格要件
47- - ` decltype(abs-if-needed(declval<typename InVec::value_type>())) ` が` Scalar ` に変換可能。
47+ - ` decltype( ` [ ` abs-if-needed ` ] ( abs-if-needed.md ) ` (declval<typename InVec::value_type>())) ` が` Scalar ` に変換可能。
4848
4949
5050## 効果
You can’t perform that action at this time.
0 commit comments