public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "eteran at alum dot rit.edu" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/60512] New: would be useful if gcc implemented __has_feature similary to clang
Date: Wed, 12 Mar 2014 19:24:00 -0000	[thread overview]
Message-ID: <bug-60512-4@http.gcc.gnu.org/bugzilla/> (raw)

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60512

            Bug ID: 60512
           Summary: would be useful if gcc implemented __has_feature
                    similary to clang
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: eteran at alum dot rit.edu

I was recently thinking about how GCC sets __cplusplus to 201103L when
-std=c++11 yet doesn't (and may not ever) fully support every single corner
case of c++11.

I agree with the notion that __cplusplus == 201103L is a statement of intent,
not 100% conformance. But how should developers write code that attempts to use
features which aren't necessarily implemented yet, but may be in the near
future or other compilers.

It occurred to me that the ideal solution may not be to test __cplusplus at
all, but instead to test for specific features. I find that that clang's
approach to this seems to hit the sweet spot. I'm sure the GCC folk are aware
of the feature, but I'll reiterate for reference. In clang:

"[This] function-like macro take a single identifier argument that is the name
of a feature. __has_feature evaluates to 1 if the feature is both supported by
Clang and standardized in the current language standard or 0 if not"

So while GCC doesn't support C++11 attributes yet, we could still code for it
today wrapping it like so.

    #if __has_feature(cxx_attributes)
    #endif

if it also supported the __has_feature (and family) suite of macros. Perhaps
this macro is mostly of interest to library writers and not a huge deal to most
developers, but I believe that it would be a tool that is *very* useful when it
turns out that you do need it.


             reply	other threads:[~2014-03-12 19:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-12 19:24 eteran at alum dot rit.edu [this message]
2014-03-12 19:35 ` [Bug c++/60512] " glisse at gcc dot gnu.org
2014-03-12 19:36 ` pinskia at gcc dot gnu.org
2014-03-12 19:52 ` eteran at alum dot rit.edu
2014-03-12 20:16 ` glisse at gcc dot gnu.org
2023-01-03 16:41 ` acoplan at gcc dot gnu.org
2023-01-04 11:40 ` redi at gcc dot gnu.org
2023-01-06 14:50 ` jrtc27 at jrtc27 dot com
2023-02-02 16:43 ` jason at gcc dot gnu.org
2023-04-11 16:39 ` acoplan at gcc dot gnu.org
2023-05-05 16:31 ` acoplan at gcc dot gnu.org
2023-05-05 18:03 ` iains at gcc dot gnu.org
2023-05-05 18:19 ` iains at gcc dot gnu.org
2023-05-05 20:26 ` iains at gcc dot gnu.org
2023-05-09 10:37 ` [Bug c++/60512] would be useful if gcc implemented __has_feature similarly " acoplan at gcc dot gnu.org
2023-05-09 10:57 ` iains at gcc dot gnu.org
2023-05-09 11:13 ` iains at gcc dot gnu.org
2023-05-09 12:14 ` acoplan at gcc dot gnu.org
2023-11-27 10:46 ` cvs-commit at gcc dot gnu.org
2023-11-27 11:08 ` acoplan at gcc dot gnu.org
2023-12-11 21:53 ` egallager at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-60512-4@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).