استفاده نکردن از متغیر در range-based loop - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده نکردن از متغیر در range-based loop

+1 امتیاز

توی کد زیر کامپایلر به من warning میده که از i استفاده نکردم

    std::vector<int> a;
    int c=1;
    for(auto& i: a)
        c*=2;

وقتی هم که به این شکل مینویسم ارور میده :

    std::vector<int> a;
    int c=1;
    for(auto& : a)
        c*=2;

 

چطوری میشه کاری کرد که warning نده ؟

سوال شده بهمن 26, 1392  بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

به این شکل (برای استفاده معمولی خط define رو پاک کنین .)

    #define AUTO_WITH_OUT_WARNING
    for(auto i : a)
    {
       #ifdef AUTO_WITH_OUT_WARNING
         (void)i; struct i;
       #endif
       c *= 2 ; //ok
     //c *= i ; //error
    }

 

پاسخ داده شده بهمن 26, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اسفند 1, 1392 بوسیله ی مصطفی ساتکی
...