3 ms·
True, but at least screw-ups will be noticed at compile time. And how would you even write this snippet, pre auto?! (I think you'd either just assume t1 + t2 w
by dilap 15y ago
True, but at least screw-ups will be noticed at compile time. And how would you even write this snippet, pre auto?!
(I think you'd either just assume t1 + t2 was T, or you'd have to go thru less-general, even-less-clear, gymnastics (like having some structure defined like get_sum_type<T,T>::thetype sum = t1 + t2).)
- koenigdavidmj 15y ago>And how would you even write this snippet, pre auto?! typeof(t1 + t2) sum = t1 + t2;
- koenigdavidmj 15y agoThat should be decltype, not typeof, btw
- dilap 15y agoThat's cheating! I meant how would you write it pre-C++11 extensions (and also not using the earlier GCC typeof extension). decltype is just a slightly different form of auto. :)
- CJefferson 15y agoExactly right, in C++03 this kind of stuff was really horrible. In general people (the STL, and all Maths code I've ever read), will just assume that the type is T. For things like iterators, you have to do things like: typename std::vector<T>::const_iterator it = v.begin(); (That typename has to be there, for stupid C++ reasons). Being able to reduce that to: auto it = v.begin(); Is probably the most visible advantages to C++11 is one of the most obvious improvements for many programers.