نمایش نتایج 1 تا 4 از 4

نام تاپیک: استفاده از typeid در دستور if

  1. #1

    Question استفاده از typeid در دستور if

    سلام دوستان.

    فرض کنیم یک template function داریم به این صورت:

    template<typename T> int func(T inp)
    {
    .....
    }


    همونطور که مشخصه این تابع یک ورودی از نوع T و خروجی int خواهد داشت.
    حالا فرض کنیم در بدنه تابع قصد دارم دستور if قرار بدم و در پرانتز مشخص کنم که اگر تایپ ورودی برای مثال int بود یه سری دستور یا اگر double بود یه سری دستور داشته باشیم و الی آخر.
    در این باره سرچ کردم و در نهایت به این رسیدم که باید فایل سرآیند typeinfo رو include کنم و در پرانتز به این صورت بنویسم که:

    if(typeid (inp) == typeid(int))
    ......


    که در نهایت به جای int تایپهای دیگه هم میتونه قرار بگیره.
    این موضوع رو مطرح کردم که نظر شما رو جویا بشم که آیا این روش درسته یا خیر و اگر اینطور نیست پیشنهاد شما چیه برای این کار؟ چون چند باری شده که به این موضوع تنوع تایپهای ورودی برخوردم.
    متشکرم.

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: استفاده از typeid در دستور if


  3. #3

    نقل قول: استفاده از typeid در دستور if

    میتونی برای انواعی که در نظر داری تمپلیت خاص ایجاد کنی.

    // Example program
    #include <iostream>
    #include <string>


    using namespace std;


    template<typename T> int func(T inp)
    {
    cout << inp << endl;
    }
    template<> int func(int inp)
    {
    cout << inp << " is int" << endl;
    }


    int main()
    {
    std::string name = "sample string";
    func(name);
    func(4);
    }



  4. #4

    Thumbs up نقل قول: استفاده از typeid در دستور if

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    ممنون از لطفت پرویز جان.

    نقل قول نوشته شده توسط حامد مصافی مشاهده تاپیک
    میتونی برای انواعی که در نظر داری تمپلیت خاص ایجاد کنی.

    // Example program
    #include <iostream>
    #include <string>


    using namespace std;


    template<typename T> int func(T inp)
    {
    cout << inp << endl;
    }
    template<> int func(int inp)
    {
    cout << inp << " is int" << endl;
    }


    int main()
    {
    std::string name = "sample string";
    func(name);
    func(4);
    }


    بسیار عالی! specialization رو از قلم انداخته بودم
    لطف کردی حامد جان.

تاپیک های مشابه

  1. استفاده از پارامتر در دستور select
    نوشته شده توسط mohandesan در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 9
    آخرین پست: شنبه 11 اسفند 1386, 21:07 عصر
  2. استفاده از پارامتر در دستور select
    نوشته شده توسط mohandesan در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 08 اسفند 1386, 11:17 صبح
  3. استفاده از like در دستور find
    نوشته شده توسط mlh_poorranjbar در بخش SQL Server
    پاسخ: 8
    آخرین پست: یک شنبه 23 دی 1386, 08:14 صبح
  4. استفاده از TOP در دستور SQL
    نوشته شده توسط Behnama در بخش VB.NET
    پاسخ: 2
    آخرین پست: دوشنبه 08 مرداد 1386, 10:09 صبح
  5. چرا وقتی از Else در دستور If استفاده می کنم Error می دهد ؟
    نوشته شده توسط محسن شمس در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: چهارشنبه 09 شهریور 1384, 18:17 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •