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: [v3] c++0x includes



On Feb 21, 2007, at 4:23 AM, Benjamin Kosnik wrote:
This adds C++0x includes when -std=c++0x.

I'm posting this mostly for feedback, as there are a couple of issues that deserve more discussion.

Thanks for doing this!



3) C++98/C++0x interface issues


a) should C++0x includes warn when included without -std=c++0x, or just do nothing?

I expect that C++0x includes may make use of C++0x features not available without -std=c++0x, so a hard #error might be the right approach.


b) what happens when both TR1 and C++0x includes in the same translation unit? Ie, for debug mode, we have:
[snip debug mode]
But:


#include <tr1/array>
#include <array>

int main()
{
  std::array<int, 5> v;
  std::tr1::array<int, 5> v2;
  return 0;
}

... are mutually exclusive in this patch.

without -std=c++0x, std::array falls down.
with -std=c++0x, std::tr1 falls down.

Although this seems like sensible behavior, I thought I'd point it out.

If one uses -std=c++0x, and #includes <tr1/array>, does "std::tr1::array<int, 5> v3;" work? i.e., is TR1 still available in C+ +0x mode?


ps. FREE THE VARIADIC TEMPLATES

:)


	Cheers,
	Doug


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