Q
コール
1
A
答えて
2
すべてconstexpr
の関数は、constexpr
と非constexpr
引数の両方で有効である必要があります。つまり、constexpr
関数の引数は本体内にはconstexpr
ではありませんが、関数本体の外側にあるconstexpr
の場合は、関数からの復帰時には、それらに応じたcertian計算がconstexpr
になる可能性があります。 xx[0]
がconstexpr
ですが、関数内で体xx
がないconstexpr
ある場合
theIntArray<xx[0]>;
これが唯一の有効な構文です。
template < size_t NN, std::array<int,NN> const& xx >
constexpr void test()
{
theIntArray<xx[0]>;
}
1
違いは、constexpr関数のパラメータが存在しないことです。それはあなたが
constexpr auto fun(int x) {
constexpr y = x;
return y;
}
を行うことができない、で、どちらもあなたは、関数内で非型テンプレートパラメータとして関数のパラメータxx[0]
を使用することはできません。 aa[0]
の場合は、関数外で評価されるため、これは異なります。
唯一の方法は、関数パラメータを非型のテンプレートパラメータにすることです。これを行うには、@ Yakkの回答を参照してください。彼はconstexpr
配列へのconst-referenceを非型テンプレートパラメータとして使用しています。
関連する問題
- 1. コール)
- 2. コール
- 3. コール
- 4. コール()
- 5. コール()
- 6. コール()
- 7. コール
- 8. コール
- 9. コール
- 10. コール
- 11. コール
- 12. コール::
- 13. コール
- 14. コール()
- 15. コール()
- 16. コール
- 17. コール()
- 18. コール
- 19. コール()
- 20. try-lock mutexコールとCASコールの比較
- 21. コールPHP
- 22. コールは
- 23. コールreact.js
- 24. コールAngular2
- 25. コールURL
- 26. JOOQ:getNextExceptionコール?
- 27. コールPHP
- 28. コール::セーブ()
- 29. コールNSOperation
- 30. コールsimplexml_load_string()
TILリテラル型にconst-referenceを追加して、ユーザー定義の非型テンプレートパラメータを模倣します。 upvoted。 – TemplateRex