2017-03-07 115 views
1
template <typename T, size_t N> 
class myarray : public std::array<T, N> 
{ 
}; 

int main() 
{ 

    myarray< myarray<unsigned int , 4>, 8> test2d; 
    // Why does using an extra pair of braces gives a compile error 
    for ((auto &n : test2d)) { 
    n.fill(0xdeadbeef); // init a 2D array 
    }  
    return 0; 
} 

所以,我的编辑插入了一对额外的大括号 - 我惊讶于代码没有编译。任何人都可以解释这里发生了什么。编译器错误,不允许在这里使用额外的大括号''''

回答

6

这无关汽车 - 这不会编译之一:

int main() 
{ 
    int a[5]; 
    for((int n : a)) { 
    } 
} 

额外的括号试图把里面什么他们到表达。

相关问题