++ 11, , .
- , decltype. , gcc typeof, , B) , C) D) E) .
D) , decltype , a. a - . , . id-, decltype . a int*. new decltype(a)[5]; int*. a int**, int*.
E) , decltype , *a. (T) int. *a . id- a. *a lvalue. lvalue decltype T&, T . , decltype(*a) int&. , new decltype(*a)[5] .
():
§ 7.1.6.2 [dcl.type.simple]
- , , decltype () :
- ID- ( 5.2.5), decltype () , , func- ,
- , x, decltype () & &, T ;
- , lvalue, decltype () &, T ;
- , decltype ()
:
int * a = new std::remove_pointer<decltype(a)>::type[5];
:
int * a = new std::remove_reference<decltype(*a)>::type[5];
, . , , decltype , . , , auto:
auto a = new int[5];