FYI, as I get these I’ll direct them to std-proposals – this features alias is a bit harder for people to find and post to.

 

 

From: Michał W. Urbańczyk [mailto:michal.w.urbanczyk@gmail.com]
Sent: Wednesday, June 28, 2017 12:47 PM
To: Herb Sutter <hsutter@microsoft.com>
Subject: Re: About p0697r0 — how SD-6 unclear status proved harmful to me

 

Absolutely, I'll post it there in a moment.

 

2017-06-28 21:32 GMT+02:00 Herb Sutter <hsutter@microsoft.com>:

Thank you Michal. Would you be so kind as to post this to the std-proposals forum?

 

https://groups.google.com/a/isocpp.org/forum/?fromgroups#!forum/std-proposals

 

 

 

From: Michał W. Urbańczyk [mailto:michal.w.urbanczyk@gmail.com]
Sent: Wednesday, June 28, 2017 10:47 AM
To: Herb Sutter <hsutter@microsoft.com>
Subject: About p0697r0 — how SD-6 unclear status proved harmful to me

 

Hello,
I saw your recent paper on feature test macros (p0697r0) and I'd like to share my very recent experience in that matter as a plain C++ user — SD-6 presence and its unclear status proved harmful to me.

I wanted to port one of my projects to VS2017 — that eventually [1] led me to an issue within the Qt framework. It provides the "qOverload" variable template for compilers that support C++14 variable templates. The feature detection is based on SD-6 feature macro, so "qOverload" is not visible under MSVC, even though it supports variable templates. When I reported the issue to Qt mainteners, I was informed that not supporting VS there was an intentional choice to save on maintenance cost and that users should report it to MS to force them to implement SD-6. [2]

I feel like I've been catched in a crossfire between vendors who took different approaches towards SD-6 adoption. While it may be argued that either MS or Qt is at fault (respectively for not implementing useful SD-6 macros or for requiring non-standard feature), I think that problem should be finally solved by WG21, as you stated in p0697r0.

Both Qt framework and Visual Studio are vital parts of C++ ecosystem and not being able to fully used them together will likely be an increasing problem point, as C++14 and C++17 gains further adoption.

I hope you might find my story relevant with regards to to upcoming discussion on the SD-6 future.

Best regards,
Michał Urbańczyk


[1] Full discussion: https://github.com/woboq/verdigris/issues/6
[2] https://bugreports.qt.io/browse/QTBUG-61667?focusedCommentId=362506&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-362506