常量字符串初始化的模板类型
That's all there is to it, but before you think that you've got all 
this nailed down, answer this: What should be the type T in the 
following declaration? 
constant_type<T>::type hello(constant("Hello")); 
Is it a char*? A const char*? No, it's actually a constant reference 
to an array of six characters (the terminating null counts, too), 
which gives us this: 
constant_type<const char (&)[6]>::type 
  hello(constant("Hello")); 
This isn't a pretty sight, and it's a pain for anyone who needs to 
update the literalwhich is why I find it much cleaner to use the good 
old std::string to get the job done. 
constant_type<std::string>::type 
  hello_string(constant(std::string("Hello"))); 
This way, you have to type a little bit more the first time, but you 
don't need to count the characters, and if there's ever a need to 
change the string, it just works.
 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号