उदाहरण
#include <type_traits>
int main()
{
static_assert(std::is_same_v<
std::decay_t<const int&>,
std::remove_reference_t<const int&>
>); // int != const int
}
std::decay
के लिए विचार करें किसी भी सीवी-qualifer निकाल देंगे, remove_reference
नहीं होगा। यह सिर्फ प्रकार के "संदर्भ" भाग को पट्टी कर देगा।
reference से:
लागू होता है lvalue करने वाली rvalue, सरणी-टू-सूचक, और समारोह करने के लिए सूचक प्रकार टी करने के लिए अंतर्निहित रूपांतरण, को हटा सीवी-क्वालिफायर, और को परिभाषित करता है जिसके परिणामस्वरूप सदस्य टाइपपीफ प्रकार के रूप में टाइप करें।
इसलिए std::decay
std::remove_reference
से जिस तरह से अधिक प्रकार रूपांतरण प्रदर्शन करेंगे।
भी है कि केवल संभव परिवर्तनों decay
करता है, remove_cv
, remove_volatile
तरह के सेट के कुछ हिस्सों का चयन किया प्रदर्शन के बारे में या, सी ++ 20, remove_cvref
में अधिक सूक्ष्म अनुप्रयोगों के लिए आगे प्रकार संशोधक हैं।
[क्षय बहुत कुछ कर सकता है] (http://en.cppreference.com/w/cpp/types/decay) 'टी' के आधार पर। –
क्या आपने उनके बारे में पढ़ने की कोशिश की है? उदाहरण के लिए [यह 'std :: decay' संदर्भ] (http://en.cppreference.com/w/cpp/types/decay) और [यह' std :: remove_reference' संदर्भ] (http: //en.cppreference .com/डब्ल्यू/सीपीपी/प्रकार/remove_reference)। –