4 ms·
Many of the complaints have become irrelevant or at least much less relevant with C++11 and huge progress also on the compiler side (most notable clang but for
by albertzeyer 15y ago
Many of the complaints have become irrelevant or at least much less relevant with C++11 and huge progress also on the compiler side (most notable clang but for example GCC also has improved many of the unreadable error messages).
- Jach 15y agoI don't use nightlies, but last time I checked even clang didn't have great template error messages. C++11 doesn't address his complaint of ever-changing standard (though I don't think that's really serious). Does C++11 support lazy extensions? (Last I checked it didn't. Use case: "Unless someone declared operator&&, then both are evaluated.") I think most of the complaints are still valid even with C++11. Whether the complaints are worth bothering about is another issue: C++ is hard, yeah, it's not going to get easier. Personally I wouldn't ever start a new project in C++, I'd rather use C or Go or Obj-C if I need low-level speed and there's a plethora of high level languages (that can still connect with C if needed) if I don't. I nevertheless have to know C++ (non-11) for all the older projects out there, most of which probably won't move to standardize on 11 making 11's benefits moot.
- jerrya 15y ago"I nevertheless have to know C++ (non-11) for all the older projects out there, most of which probably won't move to standardize on 11 making 11's benefits moot." Yep, lots of projects out there that if I am lucky have moved up to Centos 5. When they get C++0x where all of these issues are fixed is just this side of never. Oh wait a minute. Did I write C++0x? I mean when they get C++11 when all of these issues are fixed.
- gchpaco 15y agoC++11 has made things more complicated, not less. All these criticisms are still valid and can be extended with some added new stupidities (for example needing to explicitly specify capture in lambdas, a new and entirely unique way to shoot yourself in the foot; or user defined numeric literals which brings the joys of parsing C++ down the stack making even tokenizing it difficult).
- comex 15y agoHas it? The other day, the latest MacPorts gcc46 gave me: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::_Hashtable<std::pair<unsigned int, unsigned int>, std::pair<const std::pair<unsigned int, unsigned int>, GraphNode>, std::allocator<std::pair<const std::pair<unsigned int, unsigned int>, GraphNode> >, std::_Select1st<std::pair<const std::pair<unsigned int, unsigned int>, GraphNode> >, std::equal_to<std::pair<unsigned int, unsigned int> >, std::hash<std::pair<unsigned int, unsigned int> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::size_type' After a quarter century, is it really that difficult to use the type I wrote rather than this hideous expansion?