|
Boost Testing : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-05-10 04:59:00
On Tuesday 10 May 2005 13:55, Hartmut Kaiser wrote:
> Markus Schöpflin wrote:
> > I just stumbled accross one explanation for false results in
> > the regression run pages.
> >
> > Currently, wave is marked as success on Tru64/CXX, but wave
> > fails to build because of some issues with program_options.
...
> I don't understand this one.
>
> The arguments are:
> int,
> char **,
> options_description,
> int,
> std::pair<std::string, std::string> (const std::string &)
>
> And the expected argument list is:
> int,
> char const*[],
> options_description const&,
> int,
> function1<std::pair<std::string, std::string>, const std::string &>
>
> And I don't see any reason for the compiler to fail the instantiation. But
> probably I'm wrong here (as always when I disagree with my compiler ;-)
> Any hints?
I see some test failures on Comeau and Intel when calling the same
parse_command_line function, and that can be simplified to this:
template<class charT>
void foo(const charT * const args[])
{
}
void bar()
{
char* av[1];
foo(av);
}
gcc compiles this fine. Como reports:
"c.cpp", line 10: error: no instance of function template "foo" matches the
argument list
argument types are: (char *[1])
foo(av);
^
I'll plan to dig the standard to understand what's going on, but if somebody
has an explanation, that would be great.
Probably, the same issue affects CXX.
- Volodya