Jun 9, 2014

[C++11] decltype

 
int&& type_(){}                                                                           
int& type__(){}                                                                           
const int type___(){}                                                                     
                                                                                          
int main()                                                                                
{                                                                                         
   int a = 42;                                                                            
   const int ac = 42;                                                                     
   int& b = a;                                                                            
   int&& c = 42;                                                                          
                                                                                          
   decltype(a) a_= 10; // int , name                                                      
   decltype((a)) a__ = a; // int& , expression of l-value, referenced                     
   decltype(b) b_ = a; // int& , name                                                     
   decltype((b)) b__ = a; // int&& => int& , expression of l-value, referenced            
   decltype(c) c_ = 10; // int&& , name                                                   
   decltype((c)) c__ = a; // int&&& => int& , expression of l-value, referenced           

   decltype(ac) ac_ = 10; // const int
                                                                                          
   decltype(type_()) type_ = 10; // int&&, if const int&&, then type is const int&&       
   decltype(type__()) type__ = ac; // int&, if type__() returns const int&, then const int&
   decltype(type___()) type___ = 10; // int , copy by value, ignore c.v                   
                                                                                          
                                                                                          
}                                                                                         
Reference: C++ Type Deduction and Why You Care, Scott Meyers When decltype meets auto

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.