Gaby says: > I believe we do care for good diagnostic purposes. Yes. Diagnostics are very important. Please let's not regress on this point. In a perfect world we'd get the diagnostic advantages of concepts with the ability to configure typedefs.
Mike says: > As for warning/error messages, I'd hate to regress on that front. Doug, > as a heavy template user, I'm sure you've see plenty of warning/ error > messages... How important is the typedef name in your experience? Very important. In particular, for very heavily templatized code, typedefs are essential. We need more aggressive substitutions, not less. It's hard to decipher multi-paragraph type names without some kind of aliasing to shorter types. For good examples of this look at compile errors in pb_ds, the policy-based containers in libstdc+ +-v3/include/ext. I can come up with nightmare scenarios and suggestions if people are interested in specifics. However, any metaprogramming will also show these issues. My suggestion, which I've not seen here before, is to allow end-users to configure this. I see the need for both kinds of behavior: people who want to see the "real type" of the thing that they are using, and people who need "shorthands" to deal with complex types and the compilation errors that result (and will result, even with concepts.) Maybe: -Wtypedef-as-underlying-type This will also give programmers a way to make tradeoffs that impact compile-time performance. There's no need to hard wire this. -benjamin