8 次のどちらを適用するかは重要ですか? std::remove_reference_t<std::remove_cv_t<T>> または std::remove_cv_t<std::remove_reference_t<T>> どんなシナリオで、もしあれば、順序は重要ですか? c++ c++17 typetraits — だるね ソース 2 に適用してみてくださいconst int&。const int最初のケースとint2番目のケースに入るはずです。 — 1 これはあなたの質問に答えますか?std :: — remove_const @Evgややそうだと思いますが、参照をconstにすることはできないので、最初に参照を削除する必要があると言っていますか? — ダルーン 免責。大まかに言えば、参照は非 " const"であってはなりません。 — 1
7 これらの2つのタイプの特性が異なる結果を生成する場合があります。たとえば、を考えてみましょうT = const int&。 std::remove_cv_tトップレベルのcv-qualifier がないため、トップレベルのcv-qualifierが削除const int&されconst int&、に変わります。std::remove_reference_tその後、戻りconst intます。 2番目のケースでstd::remove_reference_tは、が返されconst int、std::remove_cv_tに変換されintます。 簡単なデモ — Evg ソース
const int&
。const int
最初のケースとint
2番目のケースに入るはずです。