This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: How can I test whether I have libstdc++ of a particular version or better?
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: "Andrew C. Morrow" <andrew dot c dot morrow at gmail dot com>
- Cc: "libstdc++" <libstdc++ at gcc dot gnu dot org>
- Date: Thu, 13 Jun 2013 00:00:44 +0100
- Subject: Re: How can I test whether I have libstdc++ of a particular version or better?
- References: <CA+Acj4d8sfH--P1Krb2CnX39S7yBHQtqJmf9Cpy7NUhTjqyenQ at mail dot gmail dot com>
On 12 June 2013 19:36, Andrew C. Morrow wrote:
>
> Looking at http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
> section 7, I had hoped to be able to write a configure check that
> included a standard library header, and compared against __GLIBCXX__
> like follows:
>
> #include <vector>
> // 20110325 is 4.6.0
> #if defined(__GLIBCXX__) && (__GLIBCXX__ < 20110325)
> #error
> #endif
>
> However, this won't work: 4.5.4 is newer by date than 4.6.0, so its
> __GLIBCXX__ value exceeds that of 4.6.0 and so the configure test
> would pass, even though 4.5.x is not 'newer' than 4.6.0 in terms of
> feature level.
Right, the macro is pretty much useless, I thought the docs made that
clear ... indirectly :(
> Is there some set of values defined by libstdc++ in analogy with
> __GNUC__, __GNUC_MINOR__ which avoids this date vs. feature ordering
> issue? Or am I looking at this problem wrong?
You're looking at it wrong, you should check __GNUC__ and
__GNUC_MINOR__, because you can't use libstdc++ independently of G++
so just check the G++ version.
If you want to use libstdc++ independently of G++ then currently
you're out of luck, someone needs to do the work to make testing those
macros possible.