220 19373 <2435938.M1snUpQCpx@tjmaciei-mobl4> article
Path: news.gmane.org!not-for-mail
From: Thiago Macieira <thiago@macieira.org>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Testing for supported features: Per-feature
 macros? Sentinel compilation?
Date: Tue, 28 Jul 2015 11:18:58 -0700
Lines: 41
Approved: news@gmane.org
Message-ID: <2435938.M1snUpQCpx@tjmaciei-mobl4>
References: <e5919c40-d35e-4309-b5b8-6525a4eb443c@isocpp.org> <4632341.dbW0eupDvr@tjmaciei-mobl4> <b5b53a38-ff8b-4a9d-be6a-3d615433b349@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Trace: ger.gmane.org 1438107556 29107 80.91.229.3 (28 Jul 2015 18:19:16 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Tue, 28 Jul 2015 18:19:16 +0000 (UTC)
Cc: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
To: Erich Keane <erich.keane@verizon.net>
Original-X-From: std-proposals+bncBCB4TK757YBRBFUP36WQKGQEXGX2ZUI@isocpp.org Tue Jul 28 20:19:07 2015
Return-path: <std-proposals+bncBCB4TK757YBRBFUP36WQKGQEXGX2ZUI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-wi0-f197.google.com ([209.85.212.197])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBCB4TK757YBRBFUP36WQKGQEXGX2ZUI@isocpp.org>)
	id 1ZK9Sx-0000ir-DN
	for gclcip-std-proposals@m.gmane.org; Tue, 28 Jul 2015 20:19:03 +0200
Original-Received: by wixh2 with SMTP id h2sf41898574wix.0
        for <gclcip-std-proposals@m.gmane.org>; Tue, 28 Jul 2015 11:19:02 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent
         :in-reply-to:references:mime-version:content-type:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=s4QRMJEUuLguPvcM3WxjVSI/Urzk7UxFsmHHkLNg8WY=;
        b=bfD7LbEOt9ekMPdjPJSo2bp3pgBng7jg/Mm3zWnRsKG3crY2gBA8hzJiba3i+Mjjnz
         +WEHLDkw01uD+3NK9Ph2gvb2lRNfXq98HiQ1wIUdeNxIjc4GNHZmzDgTvbyj2WMV3gSW
         3VI1dVoK5wtUAUvkBHSEfPbXon85MBUZcDrtrlcuEmNuVT+1h1uT/afLEAHsYxsF1XVY
         u/5xG5HKQkablNGJFg+cJM70dZH62xPFPq1FIB96T9wNwMMy0AwShA9StCHoQ/rjHY21
         X9CT5iR7o20XQqD+cvnDFV/hEr3dhydeGIOUG1+TJPvZQABkJpl/AUG6qjNew0cJ2l1f
         sF 
X-Gm-Message-State: ALoCoQmBqpgQ9rauQeY+QAE7J4bwh+XTi8sKgltBu6T7BdSycxdH6hufuj4bONRijxtBjL+/992V
X-Received: by 10.112.14.101 with SMTP id o5mr14438341lbc.3.1438107542827;
        Tue, 28 Jul 2015 11:19:02 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.180.91.231 with SMTP id ch7ls934292wib.47.gmail; Tue, 28 Jul
 2015 11:19:01 -0700 (PDT)
X-Received: by 10.194.81.67 with SMTP id y3mr66066937wjx.7.1438107541672;
        Tue, 28 Jul 2015 11:19:01 -0700 (PDT)
Original-Received: from gondolin.macieira.info (gondolin.macieira.info. [78.47.120.188])
        by mx.google.com with ESMTP id b4si21904845wic.119.2015.07.28.11.19.01
        for <std-proposals@isocpp.org>;
        Tue, 28 Jul 2015 11:19:01 -0700 (PDT)
Received-SPF: pass (google.com: domain of thiago@macieira.org designates 78.47.120.188 as permitted sender) client-ip=78.47.120.188;
Original-Received: from tjmaciei-mobl4.localnet (jfdmzpr02-ext.jf.intel.com [134.134.137.71])
	by gondolin.macieira.info (Postfix) with ESMTPSA id A9E5611B5B5;
	Tue, 28 Jul 2015 11:19:00 -0700 (PDT)
User-Agent: KMail/4.14.9 (Linux/4.1.2-1-desktop; KDE/4.14.9; x86_64; ; )
In-Reply-To: <b5b53a38-ff8b-4a9d-be6a-3d615433b349@isocpp.org>
X-Original-Sender: thiago@macieira.org
X-Original-Authentication-Results: mx.google.com;       spf=pass (google.com:
 domain of thiago@macieira.org designates 78.47.120.188 as permitted sender) smtp.mail=thiago@macieira.org
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:19373
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/19373>

On Tuesday 28 July 2015 11:09:54 Erich Keane wrote:
> My concern is that we couldn't trust the compiler makers to properly set
> these macros EVEN IF they were making their best effort.  By definition,
> they won't likely know if a feature is sufficiently bug free until it has
> spent some time accruing bug reports.
> 
> I believe the 'best' solution would be to have a community maintained
> include file to do this based on versions that everyone could pull into
> their projects.  A simple github file with these definitions based on the
> major compilers, as long as it is sufficiently maintained, would do a lot
> better than trusting that the compiler manufacturers release bug-free and
> tag appropriately.

Erich has a point and I can actually attest to that. If you look at Qt's 
qcompilerdetection.h file, you'll see quite a few places where the Qt C++11 
feature macros disagree with the official tables from the compiler vendors 
because the feature is either broken or incomplete.

The most common cases are when one mixes the compiler from one vendor with the 
Standard Library from another. Even modern and recent libraries like libc++ 
have faults there because they aren't often tested with other compilers 
besides the one from the same vendor.

So, yeah, maybe we should keep a central list outside of the compiler so that 
it can be updated to indicate compiler bugs.

We'll just have to squabble over a bug is really worth disabling a feature.
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

-- 

--- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

.
