تحتوى لغة c++03 على 17 نوع بيانات أساسي و هم:
char signed char unsigned char wchar_t signed short int unsigned short int signed int unsigned int signed long int unsigned long int signed long long int unsigned long long int float double long double bool void*
و في إصدار c++11 تم إضافة النوعين:
char16_tchar32_t
المطلوب كتابة برنامج كالتالي:
#include <iostream>
using namespace std;
typedef type_name type;
int main()
{
cout << write_name;
}حيث ستقوم الدالة write_name - و التى ستقوم بكتابتها - بطباعة الاسم الخاص بالنوع type و الذى قيمته يمكن ان تكون اى نوع بيانات مع العلم إذا كان type ليس فى انواع البيانات بالأعلي يتم طباعة "**unknown type**".
البرنامج سيتم تمريره لمترجم c++03 و c++11 و المفترض ان يطبع قيمة تتناسب مع النوع.
يمنع استخدام RTTI.
بقي أمر واحد و هو لابد من طباعة اسم النوع بالكامل فمثلا:
typedef long type;
إذا تم طباعة "long" فهي قيمة خاطئة و المفترض طباعة "signed long int".
السؤال متاح لمدة 5 ايام.
و الله ولي التوفيق