--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-discussio...@isocpp.org.
To post to this group, send email to std-dis...@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-discussion/.
The library working group has not traditionally used the DR resolution, applying issues only to succeeding standards. There have been some muted suggestions that they might pick up this practice from Core, but I am not aware of any such resolutions yet.Often, an issue is a clarification or resolves a contradiction. In those cases, it is often possible for a library to apply an issue to an older standard while still conforming, or at least, being no more broken. However, there is currently no requirement to do so.
For what it's worth, we have papers such as
N4387 Improving pair and tuple, revision 3
N4089 Safe conversions in unique_ptr<T[]>
N4366 LWG 2228: Missing SFINAE rule in unique_ptr templated assignment
that are designated as C++17 papers in libstdc++ status page, but I
have implemented
them as applying to C++11 as well, and even though they are not yet committed,
I certainly plan to commit them as C++11 fixes, even though the guidance
from LWG is not entirely clear with regards to how they should be applied.
Some of the issues in N4387 certainly were intended to be C++11 fixes by
the issue submitter. I see no reason to apply any of those papers into
C++17 only.
The library working group has not traditionally used the DR resolution, applying issues only to succeeding standards. There have been some muted suggestions that they might pick up this practice from Core, but I am not aware of any such resolutions yet.Often, an issue is a clarification or resolves a contradiction. In those cases, it is often possible for a library to apply an issue to an older standard while still conforming, or at least, being no more broken. However, there is currently no requirement to do so.
As a user, I don't like the policy to apply most of these changes to old mode (-std=c++xx) of the implementations, since it is difficult to test and work around the probable different behavior for many versions of the implementation I used. The list of issues is too subtle and not clear to most people, even the language (but not, necessarily, standardization) experts.
This is more annoying for core issues, because the users usually cannot work around them easily as the library implementation, e.g. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65890. Though it comes to be not a bug eventually as per the "plus amendments" wording, I cannot easily found the list of these amendments and figure out which sets of versions are effected (and expect how they behave). I can ensure the steady behavior on possible code+implementation combinations only if I read all the related implementation issues lists (at least bugzilla issues for GCC) or even the source of implementations, otherwise I can never make sure *which difference can show a bug of the implementation* even I have read *all the published standards and issues*. (In fact, I personally do something like that, i.e. https://bitbucket.org/FrankHB/yslib/wiki/StandardUsing.en-US.md, but that is not viable for most projects in reality.) Since there are no totally bug-free implementations, that's absurd.
I cannot agree with you. Advancing is more important than repairing for cpp. No one will use cpp if it stops there, just fixing around some bugs, issues, undefined behaviors, that's not C plus plus language but C language. In my opinion Cpp is always new, extremely new. If you want a stable one, you can choose C language, or create a new language named Stable Cpp or Cpp Lite or something else. I am looking forward for new features like RTTI support and, fixing those issues, is just what compiler producer did.