Boost logo

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


Boost-testing list run by mbergal at meta-comm.com