yaiiaj
پنج شنبه 08 تیر 1396, 15:15 عصر
سلام دوستان.
فرض کنیم یک template function داریم به این صورت:
template<typename T> int func(T inp)
{
.....
}
همونطور که مشخصه این تابع یک ورودی از نوع T و خروجی int خواهد داشت.
حالا فرض کنیم در بدنه تابع قصد دارم دستور if قرار بدم و در پرانتز مشخص کنم که اگر تایپ ورودی برای مثال int بود یه سری دستور یا اگر double بود یه سری دستور داشته باشیم و الی آخر.
در این باره سرچ کردم و در نهایت به این رسیدم که باید فایل سرآیند typeinfo رو include کنم و در پرانتز به این صورت بنویسم که:
if(typeid (inp) == typeid(int))
......
که در نهایت به جای int تایپهای دیگه هم میتونه قرار بگیره.
این موضوع رو مطرح کردم که نظر شما رو جویا بشم که آیا این روش درسته یا خیر و اگر اینطور نیست پیشنهاد شما چیه برای این کار؟ چون چند باری شده که به این موضوع تنوع تایپهای ورودی برخوردم.
متشکرم.
فرض کنیم یک template function داریم به این صورت:
template<typename T> int func(T inp)
{
.....
}
همونطور که مشخصه این تابع یک ورودی از نوع T و خروجی int خواهد داشت.
حالا فرض کنیم در بدنه تابع قصد دارم دستور if قرار بدم و در پرانتز مشخص کنم که اگر تایپ ورودی برای مثال int بود یه سری دستور یا اگر double بود یه سری دستور داشته باشیم و الی آخر.
در این باره سرچ کردم و در نهایت به این رسیدم که باید فایل سرآیند typeinfo رو include کنم و در پرانتز به این صورت بنویسم که:
if(typeid (inp) == typeid(int))
......
که در نهایت به جای int تایپهای دیگه هم میتونه قرار بگیره.
این موضوع رو مطرح کردم که نظر شما رو جویا بشم که آیا این روش درسته یا خیر و اگر اینطور نیست پیشنهاد شما چیه برای این کار؟ چون چند باری شده که به این موضوع تنوع تایپهای ورودی برخوردم.
متشکرم.