
Looking at program_options failures, it seems like two platforms are fully not working due to issues in Boost.Test. First is MIPS: http://tinyurl.com/3c8avh Second is Sun: http://tinyurl.com/2yjlpd Can those issues be fixed in near future? Thanks, Volodya

2007/10/13, Vladimir Prus <ghost@cs.msu.su>:
Looking at program_options failures, it seems like two platforms are fully not working due to issues in Boost.Test.
First is MIPS: http://tinyurl.com/3c8avh
Second is Sun: http://tinyurl.com/2yjlpd
Can those issues be fixed in near future?
It's a bug in Sun C++. This bug exists in all version and current development branch. Compiler cannot select overloaded function and shows incorrect ambiguity error in the following test case: template <typename T> void foo(T const & t) {} template <typename T, unsigned N> void foo(T ( & t ) [N]) {} int main() { foo("test"); } If remove 'const' from the first function compiler works good. -- Simon Atanasyan

Simon Atanasyan wrote:
2007/10/13, Vladimir Prus <ghost@cs.msu.su>:
Looking at program_options failures, it seems like two platforms are fully not working due to issues in Boost.Test.
First is MIPS: http://tinyurl.com/3c8avh
Second is Sun: http://tinyurl.com/2yjlpd
Can those issues be fixed in near future?
It's a bug in Sun C++. This bug exists in all version and current development branch. Compiler cannot select overloaded function and shows incorrect ambiguity error in the following test case:
template <typename T> void foo(T const & t) {}
template <typename T, unsigned N> void foo(T ( & t ) [N]) {}
int main() { foo("test"); }
If remove 'const' from the first function compiler works good.
Even if that's Sun C++ issue, it's unfortunate that Boost.Test is affected. Maybe, a workaround in Boost.Test is possible? - Volodya

"Vladimir Prus" <ghost@cs.msu.su> wrote in message news:E1IhobN-0003E0-Kj@zigzag.lvk.cs.msu.su...
Simon Atanasyan wrote:
2007/10/13, Vladimir Prus <ghost@cs.msu.su>:
Looking at program_options failures, it seems like two platforms are fully not working due to issues in Boost.Test.
First is MIPS: http://tinyurl.com/3c8avh
Second is Sun: http://tinyurl.com/2yjlpd
Can those issues be fixed in near future?
It's a bug in Sun C++. This bug exists in all version and current development branch. Compiler cannot select overloaded function and shows incorrect ambiguity error in the following test case:
template <typename T> void foo(T const & t) {}
template <typename T, unsigned N> void foo(T ( & t ) [N]) {}
int main() { foo("test"); }
If remove 'const' from the first function compiler works good.
Even if that's Sun C++ issue, it's unfortunate that Boost.Test is affected. Maybe, a workaround in Boost.Test is possible?
Unfortunately I do not have easy access to this platform any more. Can anyone either propose concrete patch or give me temporary access to this platform? Gennadiy

2007/10/23, Gennadiy Rozental <rogeeff@gmail.com>:
"Vladimir Prus" <ghost@cs.msu.su> wrote in message news:E1IhobN-0003E0-Kj@zigzag.lvk.cs.msu.su...
Simon Atanasyan wrote:
2007/10/13, Vladimir Prus <ghost@cs.msu.su>:
Looking at program_options failures, it seems like two platforms are fully not working due to issues in Boost.Test.
First is MIPS: http://tinyurl.com/3c8avh
Second is Sun: http://tinyurl.com/2yjlpd
Can those issues be fixed in near future?
It's a bug in Sun C++. This bug exists in all version and current development branch. Compiler cannot select overloaded function and shows incorrect ambiguity error in the following test case:
template <typename T> void foo(T const & t) {}
template <typename T, unsigned N> void foo(T ( & t ) [N]) {}
int main() { foo("test"); }
If remove 'const' from the first function compiler works good.
Even if that's Sun C++ issue, it's unfortunate that Boost.Test is affected. Maybe, a workaround in Boost.Test is possible?
Unfortunately I do not have easy access to this platform any more. Can anyone either propose concrete patch or give me temporary access to this platform?
The problem is in the Sun related workaround in the boost/test/test_tools.hpp. I do not know purpose of this workaround. Maybe it was dedicated to old bug in the Sun C++ related to reference to array as an argument of template function. Anyway Sun C++ 5.8, 5.9 do not need this workaround. So I suggest to remove it at all. Older version of Sun C++ cannot compile this code with and without workaround. Patch is attached. -- Simon Atanasyan

The problem is in the Sun related workaround in the boost/test/test_tools.hpp. I do not know purpose of this workaround. Maybe it was dedicated to old bug in the Sun C++ related to reference to array as an argument of template function. Anyway Sun C++ 5.8, 5.9 do not need this workaround. So I suggest to remove it at all. Older version of Sun C++ cannot compile this code with and without workaround.
You probably right. these are leftovers from my very old attempts to port Boost.Test on Sun CC. I removed these workarounds and find ones that actually required for this compiler. Gennadiy
participants (3)
-
Gennadiy Rozental
-
Simon Atanasyan
-
Vladimir Prus