std :: remove_reference_t >顺序重要吗?

问题描述 投票:1回答:1

以下列顺序应用是否重要?

std::remove_reference_t<std::remove_cv_t<T>>

std::remove_cv_t<std::remove_reference_t<T>>

在什么情况下,订单有关系吗?

c++ c++17 typetraits
1个回答
2
投票

在某些情况下,这两种类型的特征产生不同的结果。例如,让我们考虑T = const int&

  1. std::remove_cv_t将删除顶级cv限定词,将const int&转换为const int&,因为没有顶级cv限定词。 std::remove_reference_t然后将返回const int

  2. 在第二种情况下,std::remove_reference_t将返回const int,并且std::remove_cv_t会将其转换为int

Simple demo

© www.soinside.com 2019 - 2024. All rights reserved.