یک تابع قالبی در C++ بنویسید که یک مقدار ورودی می‌گیرد و با استفاده از هدر تشخیص دهد نوع دادهٔ ورودی صحیحی (integral) است یا اعشاری (floating point) و در صورت نبود هرکدام در زمان اجرا یک std::invalid_argument پرتاب کند.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:27

0.0

برای حل، از هدر و صفات آماده مثل std::is_integral و std::is_floating_point استفاده کنید؛ می‌توانید با if constexpr (C++17) تصمیم‌گیری را در زمان کامپایل انجام دهید و در غیر این صورت در زمان اجرا یک استثناء std::invalid_argument پرتاب کنید. این روش در برنامه‌های سیستم و امبدد مفید است تا پیش از ارسال یا پردازش داده‌ها نوع مناسب را تضمین کنید؛ نکته‌ها: از include و استفاده کنید و اگر هدف فقط اطلاع در زمان کامپایل است از static_assert یا std::enable_if بهره ببرید.

توسط پژوهشگر در 221 روز قبل ساعت 01:27
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 221 روز قبل ساعت 13:14

نکته: برای پیاده‌سازی یک تابع قالبی که ورودی را با std::is_integral یا std::is_floating_point تشخیص دهد، از if constexpr (C++17) استفاده کنید و در غیر این صورت در زمان اجرا std::invalid_argument پرتاب کنید. حتماً هدر <type_traits> را include کنید. اگر هدف فقط اطلاع در زمان کامپایل است، می‌توانید از static_assert یا std::enable_if بهره ببرید. در محیط‌های embedded، پیام استثناء باید واضح باشد تا کاربر بداند چه نوع داده‌ای انتظار می‌رود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری