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

نام تاپیک: تعریف کردن literals

  1. #1

    Red face تعریف کردن literals

    این عنوان پیدا کردن واسه تاپیکم دردسری شده ها مسئولین رسیدگی کنن
    میخواستم ببینم literal چیه چطوری تعریف میشه به چه دردی میخوره و یه مثالم اگه برام بزنید که عالی میشه ممنون

  2. #2

    نقل قول: تعریف کردن literals

    سلام
    literal در واقع همان ثابتهای عددی و رشته ای و .. هستند که چند دسته هستند

    literal های صحیح مثل 2 یا 5 یا 6LL یا 0x45
    در مورد 45 پیشوند 0x آورده شد که نشان بده در مبنی 16 هست
    یا مثلا 6 با پسوند LL آورده شده که مشخص می کنه از نوع long long هست

    literal های کاراکتری مثل 'a' یا 'u'b یا ...
    که مورد اول از نوع char و پیشوند u در دومی مشخص می کنه ازنوع char16_t هست

    literal های اعشاری مثل 12.3 یا 15.6f
    که اولی double و دومی float هست

    literal های رشته ای مثل "abc" یا "u"def
    که مثلا اولی آرایه ثابت از char و دومی آرایه ثابت از char16_t هستند

    literal های بولی مثل true یا false

    literal اشاره گر که عبارت است از کلمه کلیدی nullptr

    و نهایتا literal های تعریف شده توسط کاربر که فکر کنم سوال اصلی هم در این مورد باشه
    ما می تونید پسوند هایی به دلخواه تعریف کنیم که وقتی اون را بعد از یک literal گذاشتیم برای ما مثل یک تابع یا عملگر رفتار کنه

    روش تعریف هم به این صورته که مثل تعریف سایر عملگرها انجام میشه اما با این تفاوت :
     operator ""  identifier 

    که identifier همون پسوند مورد نظره که حرف اول اون با _ شروع می شه
    چند تا مثال از این منبع :
    http://en.cppreference.com/w/cpp/language/user_literal
    مثلا ما می خواهیم یک پسوند تعریف کنیم که بعد از عر عددگذاشتیم درجه را به رادیان تبدیل کنه ( این کار را با تابع هم می تونستیم انجام بدیم)

    long double operator"" _deg ( long double deg )
    {
    return deg*3.141592/180;
    }
    int main(){
    double x = 90.0_deg;
    }

    یا مثلا می خواهیم یک پسوند تعریف کنیم که چاپ کنه

    #include <iostream>
    void operator"" _print ( const char* str )
    {
    std::cout << str;
    }

    int main(){
    54321_print;
    }


    با استفاده از template هم میشه literal تعریف کنیم
    یه سری ریزه کاری ها هم در استفاده ازش هست که توی همون منبع یا استاندارد نوشته شده

  3. #3

    نقل قول: تعریف کردن literals

    نقل قول نوشته شده توسط rahnema1 مشاهده تاپیک
    مثلا ما می خواهیم یک پسوند تعریف کنیم که بعد از عر عددگذاشتیم درجه را به رادیان تبدیل کنه ( این کار را با تابع هم می تونستیم انجام بدیم)

    long double operator"" _deg ( long double deg )
    {
    return deg*3.141592/180;
    }
    int main(){
    double x = 90.0_deg;
    }
    من این کدو تو ویژوال استادیو کپی کردم یه همچین خطایی میده
    IntelliSense: expected an operator
    در ضمن مگه کد زیر درست نیست پس چرا ویژوال استادیو بش گیر میده
    using myint = int;

  4. #4

    نقل قول: تعریف کردن literals

    نقل قول نوشته شده توسط iut.ali مشاهده تاپیک
    من این کدو تو ویژوال استادیو کپی کردم یه همچین خطایی میده
    IntelliSense: expected an operator
    در ضمن مگه کد زیر درست نیست پس چرا ویژوال استادیو بش گیر میده
    using myint = int;
    gcc پیشتازترین کامپایلر در زمینه پیاده سازی استاندارد هست . در داکیومنت مایکروسافت ببینید اینها پیاده سازی شده یا نه

  5. #5

    نقل قول: تعریف کردن literals

    نقل قول نوشته شده توسط iut.ali مشاهده تاپیک
    من این کدو تو ویژوال استادیو کپی کردم یه همچین خطایی میده
    IntelliSense: expected an operator
    در ضمن مگه کد زیر درست نیست پس چرا ویژوال استادیو بش گیر میده
    using myint = int;
    چه ورژنی ؟ این کد داخل vs2013 مشکلی نداره

  6. #6

    نقل قول: تعریف کردن literals

    نقل قول نوشته شده توسط omid_kma مشاهده تاپیک
    چه ورژنی ؟ این کد داخل vs2013 مشکلی نداره
    version 2012

  7. #7

    نقل قول: تعریف کردن literals

    سلام چند وقت پیش این تاپیکو درست کردم و به جواب سوالم رسیدم ولی من نمیتونم از این syntax استفاده کنم حتی از g++ هم استفاده کردم ولی فایده نداشت من از ویژوال استادیو 2013 استفاده می کنم توی g++ هم برای استانداردش از std=C++‎1y استفاده میکنم ولی بازم خطا میده ممنون میشم بهم راه حل بدید

  8. #8

    نقل قول: تعریف کردن literals

    برای من هم خطا میده ...

  9. #9
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,022

    نقل قول: تعریف کردن literals

    من از vs 2013 استفاده می کنم ولی نمی تونم از قابلیت های سی ++ 11 استفاده کنم . چطور میشه فعالش کرد؟

    Write Once, Run Anywhere

  10. #10

    نقل قول: تعریف کردن literals

    این سایت کد شما را با انواع کامپایلرها تست می کنه:
    http://gcc.godbolt.org

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

  1. سوالی درمورد تعریف کردن class دریونیت جدید
    نوشته شده توسط dddelphiii در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: دوشنبه 08 مرداد 1386, 00:13 صبح
  2. تعریف کردن کلید میان بر (Hot Key) برای برنامه
    نوشته شده توسط __siavash__ در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: چهارشنبه 23 اسفند 1385, 17:20 عصر
  3. کمک جهت تعریف کردن کاربر و گروههای کاری
    نوشته شده توسط norouzi512 در بخش شبکه و Networking‌
    پاسخ: 10
    آخرین پست: چهارشنبه 14 تیر 1385, 11:57 صبح
  4. یه سوال در مورد user تعریف کردن در active directory
    نوشته شده توسط alilittle در بخش شبکه و Networking‌
    پاسخ: 1
    آخرین پست: دوشنبه 20 تیر 1384, 21:07 عصر
  5. سوالی در مورد تعریف کردن Procedure
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: دوشنبه 27 بهمن 1382, 23:26 عصر

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

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