This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How can I test whether I have libstdc++ of a particular version or better?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]