[Bug libstdc++/71771] DR 685 applied incorrectly

2016-08-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 Jonathan Wakely changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-08-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 Jonathan Wakely changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-08-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #8 from Jonathan Wakely --- Author: redi Date: Tue Aug 23 10:13:26 2016 New Revision: 239691 URL: https://gcc.gnu.org/viewcvs?rev=239691&root=gcc&view=rev Log: Implement resolution of LWG DR 685 precisely PR libstdc++/71771

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread Casey at Carter dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #7 from Casey Carter --- That seems like a good compromise solution to avoid breaking both old code and new.

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #6 from Jonathan Wakely --- (In reply to Casey Carter from comment #5) > If you think that defending against unconstrained templates is important, > then we should open a library issue to standardize that behavior. From my > experienc

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread Casey at Carter dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 Casey Carter changed: What|Removed |Added CC||Casey at Carter dot net --- Comment #5 fr

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #4 from Jonathan Wakely --- This fails without the single-type overloads: #include namespace greedy { struct X { }; template X operator-(T, T) { return {}; } } int main() { std::move_iterator m{nullptr}; m - m;

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #3 from Jonathan Wakely --- But we do have greedy_ops::operator- defined in testsuite/util/testsuite_greedy_ops.h ... drat.

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 --- Comment #2 from Jonathan Wakely --- But as there's no rel_ops::operator- we shouldn't need to do that for operator-

[Bug libstdc++/71771] DR 685 applied incorrectly

2016-07-06 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71771 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|