سؤال
لدي ناقلات ثنائية الأبعاد وأرغب في الاستعلام عن أنواعها المختلفة في وقت التشغيل.
يبدو أنه من الممكن على ناقل "فارغ"، E.G.: giveacodicetagpre.
العائد أعلاه "تعويم" على الرغم من أنني كنت أتوقع استثناءا كما لم أدفع أي عناصر.
هل هو مجرد حظ أنه عند الوصول إلى الذاكرة عند [0][0]
دون فحص أو اختبار ITERATION، فإنه ينجح؟أو يقوم المتجهات بتخصيص بعض التخزين الأساسي عند الإعلان عنها؟
المحلول
Since float
does not have any virtual methods, the compiler can evaluate typeid(some_float_object)
statically without looking at the actual expression, just its static type. According to section 5.2.8 of the C++ standard (current C++0x draft), the compiler is not even allowed to evaluate the expression.
لا تنتمي إلى StackOverflow