template < typename T, int N> class Group
{
public :
T values[ N] ;
Group( T args[ ] )
{
for ( int i = 0 ; i < N; i++ )
{
values[ i] = args[ i] ;
}
}
Group( )
{
this ( ( T[ ] ) { 0 , 0 , 0 } ) ;
}
} ;
int main( )
{
Group< double , 3 > * v1 = new Group< double , 3 > ( ) ;
}
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIGludCBOPiBjbGFzcyBHcm91cAp7CiAgICBwdWJsaWM6CiAgICAgICAgVCB2YWx1ZXNbTl07CgogICAgICAgIEdyb3VwKFQgYXJnc1tdKQogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhbHVlc1tpXSA9IGFyZ3NbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEdyb3VwKCkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMoKFRbXSl7MCwgMCwgMH0pOwogICAgICAgIH0KfTsKCmludCBtYWluKCkKewogICAgR3JvdXA8ZG91YmxlLCAzPiAqIHYxID0gbmV3IEdyb3VwPGRvdWJsZSwgMz4oKTsKfQ==
compilation info
prog.cpp: In instantiation of ‘Group<T, N>::Group() [with T = double; int N = 3]’:
prog.cpp:22:50: required from here
prog.cpp:16:17: error: expression cannot be used as a function
this((T[]){0, 0, 0});
~~~~^~~~~~~~~~~~~~~~
stdout