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