सी ++ से 11 मानक (मसौदा n3337) §5/9:टाइप रूपांतरण के संबंध में रैंक का मतलब क्या है?
- दोनों ऑपरेंड एक ही प्रकार है, तो आगे कोई रूपांतरण की जरूरत है।
- अन्यथा, यदि दोनों ऑपरेंड पूर्णांक प्रकार पर हस्ताक्षर किए हैं या दोनों अहस्ताक्षरित पूर्णांक प्रकार, कम पूर्णांक रूपांतरण रैंक के प्रकार अधिक से अधिक रैंक साथ संकार्य के प्रकार के लिए परिवर्तित किया जाएगा साथ संकार्य है ।
- अन्यथा, यदि संकार्य अहस्ताक्षरित पूर्णांक प्रकार है कि रैंक से अधिक या रैंक अन्य संकार्य के प्रकार के, के बराबर है पर हस्ताक्षर किए पूर्णांक प्रकार के साथ संकार्य प्रकार के लिए परिवर्तित किया जाएगा अप्रमाणित पूर्णांक प्रकार के साथ ऑपरेंड।
- अन्यथा, यदि हस्ताक्षर किए पूर्णांक प्रकार के साथ संकार्य के प्रकार अहस्ताक्षरित पूर्णांक प्रकार के साथ संकार्य के प्रकार के मूल्यों के सभी का प्रतिनिधित्व कर सकते हैं, अहस्ताक्षरित पूर्णांक प्रकार के साथ संकार्य किया जाएगा के प्रकार के लिए परिवर्तित हस्ताक्षरित पूर्णांक प्रकार के साथ ऑपरेंड।
- अन्यथा, दोनों ऑपरेटरों को हस्ताक्षरित पूर्णांक हस्ताक्षर पूर्णांक प्रकार के साथ ऑपरेंड के प्रकार से संबंधित प्रकार में परिवर्तित किया जाएगा।
इस संदर्भ में रैंक का क्या मतलब है?
निश्चित रूप से यह std::rank की चर्चा करते हुए नहीं,
कि के रूप में एक सरणी में आयामों की संख्या के साथ क्या करना है ...
अभिन्न प्रकार के संदर्भ में और चल बिन्दु प्रकार, मैं इसे अपनी क्षमता आकार को संदर्भित करता है लगता है ।
सी ++ स्टैंडर्ड गारंटी देता है कि:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
हूँ मैं सही तो माना कि रैंकों तो कर रहे हैं:
Rank
Type
1
char
2
short
3
int
4
long
5
long long
...
मैं प्रत्येक प्रकार के लिए रैंक के स्तर का वर्णन कहीं भी list नहीं ढूंढ पाया।
4.13/पी 1 ([conv.rank] देखें)। – 0x499602D2
@ 0x499602D2 Yup, यही वह है जिसे मैं ढूंढ रहा था। –