Một số phép biến đổi kiểu trong <type_traits>
cũng có thể được biểu diễn bằng cú pháp ngôn ngữ chính (ví dụ: std::add_const<T>::type
là/có vẻ tương đương với const T
). Dtto cho std::add_lvalue_reference
và có thể là những người khác. Việc sử dụng cho những đặc điểm kiểu này là gì?Các trường hợp sử dụng cho tiêu chuẩn :: add_const và tương tự
tôi hoàn toàn hiểu tiêu chuẩn sẽ được cung cấp một "hộp công cụ không đầy đủ" mà không có họ, và tôi có thể tưởng tượng được sử dụng một cách meta, một cái gì đó như thế này:
template<typename In, template <typename> class Modifier>
struct Apply {
typedef typename Modifier<T>::type Out;
};
Apply<int, std::add_const>
Có bất kỳ trường hợp sử dụng khác cho những đặc điểm mà có thể được thể hiện bằng cú pháp, hoặc là chúng chỉ bao gồm "ngoài ý nghĩa của sự hoàn chỉnh" và cho việc sử dụng meta không thường xuyên?
Điều gì xảy ra nếu 'T' đã là' const'? –
@PeterWood [hoạt động tốt] (http://ideone.com/mhY62n), ít nhất là trong gcc 4.7.2 – Angew
@PeterWood Nếu đó là đã đủ điều kiện, nó mang lại cho cùng loại trở lại, theo yêu cầu của tiêu chuẩn. – jrok