|
Boost : |
Subject: Re: [boost] [type_traits] common_type fails when typeof is not used
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2011-01-13 00:39:05
----- Original Message -----
From: "John Maddock" <boost.regex_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Wednesday, January 12, 2011 2:32 PM
Subject: Re: [boost] [type_traits] common_type fails when typeof is not used
> Fixed header applied to Trunk as of rev 68040.
>
> I modified your tests somewhat and added updated test cases as well (with
> one case to test when BOOST_COMMON_TYPE_DONT_USE_TYPEOF is defined).
>
> Thanks! John.
Thanks John.
There is yet an error on Sun compiler that is not really related to common_type code, but to the test code itself.
Test output: Sandia-sun - type_traits - common_type_test / sun-5.10
Rev 68075 / Thu, 13 Jan 2011 01:15:43 +0000
Report Time: Thu, 13 Jan 2011 04:05:07 +0000
Compile [2011-01-13 02:07:06 UTC]: fail
"/opt/sunstudio12.1/bin/CC" +d -library=stlport4 -features=tmplife -features=tmplrefstatic -g -erroff=%none -errwarn -m64 -KPIC -DBOOST_ALL_NO_LIB=1 -I".." -c -o "/scratch2/kbelco/boost/results/boost/bin.v2/libs/type_traits/test/common_type_test.test/sun-5.10/debug/address-model-64/stdlib-sun-stlport/common_type_test.o" "../libs/type_traits/test/common_type_test.cpp"
"../libs/type_traits/test/common_type_test.cpp", line 47: Error: ac must be initialized.
"../libs/type_traits/test/common_type_test.cpp", line 88: Where: While instantiating "assignation_2<C1C2, C1>()".
"../libs/type_traits/test/common_type_test.cpp", line 88: Where: Instantiated from non-template code.
On the web I have found that
Warning: Objects of type AAAA must be initialized
This warning is produced when you use new() to allocate a const object without providing an initial value or a default constructor, as shown in the following example:
const int * ip = new const int;
This is an error, since constants of unknown value are not useful. The solution is to add an initializer. The preceding example would then become
const int * ip = new const int(0);
I guess that we can change the test code so the default constructor is explicit to avoid this Sun error
struct C1 {
C1() {};
};
struct C2 {
C1() {};};
Best,
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk