This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] Variadic templates, third revision (3/3)


Doug Gregor wrote:
The compiler only complains about the use of variadic templates
outside system headers, so we're free to use variadic templates in
libstdc++; no #ifdef necessary.
Yeah!
However, variadic templates will change the ABI of the TR1 facilities
that use them. For example, instead of mangling "tuple<int, float>" as
"tuple<int, float, _NullClass, _NullClass, _NullClass, _NullClass,
_NullClass, _NullClass, _NullClass, _NullClass>" (which happens now),
it will mangle as "tuple<int, float>." If this is a problem we'll
either have to do what Benjamin suggests or (*shudder*) select between
the variadic and non-variadic implementations based on
__GXX_EXPERIMENTAL_CPP0X__.
In my opinion, and consistently with my personal "philosophical" point of view on TR1 features, already well known to the libstdc++ list, I don't think such complexities are necessary: only a note in the relevant (4.3, I hope ;) release notes, mentioning the ABI breakage caused, as a minor negative fall out, by the new up to date variadic templates-based implementation, will be more than enough.

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]