On Friday 18 March 2011 18:24:11 Cactus wrote:
> On Mar 18, 5:55 pm, Jason <[email protected]> wrote:
> > On Wednesday 16 March 2011 09:11:38 Jason wrote:
> > > On Wednesday 16 March 2011 09:03:41 Jason wrote:
> > > > On Wednesday 16 March 2011 08:21:35 Cactus wrote:
> > > > > On Mar 16, 1:42 am, Bill Hart <[email protected]> wrote:
> > > > > > I don't think we should be using C++0x features without a
> > > > > > conscious decision to do that.
> > > > > > 
> > > > > > On 16 March 2011 01:35, Jason <[email protected]> wrote:
> > > > > > > Hi
> > > > > > > 
> > > > > > > Using the new autotools and running make check , the C++ tests
> > > > > > > fail to compile with this error
> > > > > > > 
> > > > > > > /mpir/trunk/tests/cxx# make t-misc
> > > > > > > g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../tests    -O2
> > > > > > > -m64 -march=core2 -mtune=core2 -c -o t-misc.o t-misc.cc
> > > > > > > In file included from /usr/lib64/gcc/x86_64-slackware-
> > > > > > > linux/4.4.4/../../../../include/c++/4.4.4/cstdint:35,
> > > > > > > 
> > > > > > >                 from ../../mpir.h:58,
> > > > > > > 
> > > > > > >                 from t-misc.cc:33:
> > > > > > > /usr/lib64/gcc/x86_64-slackware-
> > > > > > > linux/4.4.4/../../../../include/c++/4.4.4/c++0x_warning.h:31:2:
> > > > > > > error: #error This file requires compiler and library support
> > > > > > > for the upcoming ISO C++ standard, C++0x. This support is
> > > > > > > currently experimental, and must be enabled with the
> > > > > > > -std=c++0x or -std=gnu++0x compiler options.
> > > > > > > make: *** [t-misc.o] Error 1
> > > > > > > 
> > > > > > > Using the suggested fix , fixes the problem , but as I know
> > > > > > > next to nothing about C++ standards , what should we do?
> > > > > > > 
> > > > > > > Thanks
> > > > > > > Jason
> > > > > > > 
> > > > > > > --
> > > > > > > You received this message because you are subscribed to the
> > > > > > > Google Groups "mpir-devel" group. To post to this group, send
> > > > > > > email to [email protected]. To unsubscribe from this
> > > > > > > group, send email to [email protected].
> > > > > > > For more options, visit this group
> > > > > > > athttp://groups.google.com/group/mpir-devel?hl=en.
> > > > > 
> > > > > This should only happen if HAVE_STDINT_H has been defined in
> > > > > config.h
> > > > > 
> > > > >    Brian
> > > > 
> > > > Ah , thanks , I've fixed the error now , I just put a test in
> > > > autoconf for cstdint
> > > > 
> > > > Jason
> > > 
> > > Whoops , forgot to type --enable-cxx , so nothing fixed :(
> > > 
> > > Jason
> > 
> > svn trunk rev 3435 is fine , so it's the code for the get/set_ux function
> > that makes C++ require the std=0x , or rather the inclusion of uintmax
> > in mpir.h , I suspect.
> > 
> > Jason
> 
> Hi Jason,
> 
> It is only when a source code file includes the define HAVE_STDINT_H
> that mpir.h then includes either stdint.h or cstdint.
> 
> Since the functions involving *_ux and *_sx require the (u)intmax_t
> types by definition, they do, as you suggest, invoke this include, one
> that is not C89 compliant.
> 
> They are not alone in this since the long long types are not C89
> compliant either.
> 
>     Brian

If I understand correctly then if we put #undef HAVE_STDINT_H before #include 
"mpir.h" in the test code for the C++ tests only , this will remove the make 
check failure of requiring C++0x , and it wont affect the library , and anyone 
including mpir.h can build their project with strict C89 compliance (ie ECM 
people) (assuming they dont use these functions) , and if someone wants the 
functions they will of course have to include stdint (which I assume defines 
HAVE_STDINT_H) then their mpir.h will have the required definitions.

Jason

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to