Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why can't I use this 'void' type in a range based for loop?

for(auto i: {{1,2,3}, {4,5,6}, {7,8,9}}){
    /* loop body */
}

I know I have other ways to get my work done. But I was just wondering why we cannot use such type of list in this loop.

It is giving me this error:

cannot use type 'void' as a range
like image 629
sparsh goyal Avatar asked Dec 14 '25 07:12

sparsh goyal


1 Answers

{..} has no types, so it is problematic for deduction needed for inner type, you might help by explicitly provide the type: (I used CTAD from C++17 here, before add <int>)

for (auto i: {std::initializer_list{1,2,3}, {4,5,6}, {7,8,9}}){
    /* loop body */
}

Demo

like image 150
Jarod42 Avatar answered Dec 16 '25 23:12

Jarod42



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!