CC 5.8 issue on template template argument
Hello,
When using template template argument on template methods, it looks like CC 5.8 (patch 121017-05) has troubles when explicitly qualifying this argument as illustrated by this test-case :
class Object
{};
template <class T>
class LinkVstr
{};
class Tst
{
public:
template <template><typename T> class Container>
void f(const Container<Object>& postes)
{}
};
void instantiate()
{
LinkVstr<Object> liste;
Tst t;
t.f<LinkVstr>(liste);
}
Error: No parameters provided for template.
Error: Could not find a match for Tst::f<Tst::Container><Tst::T>>(LinkVstr<Object>) needed in instantiate().
If I replace t.f<LinkVstr>(liste); by t.f<LinkVstr><Object> >(liste); then it compiles OK but it seems like the former is OK and the latter is not as shown here (though it's for template classes and not template methods):
http://www.informit.com/articles/article.asp?p=376878&rl=1
I have also checked with gcc 3.4.5 and it is consistent with this article.
Regards,
PH
[1217 byte] By [
Maleze] at [2007-11-26 11:09:44]

# 4
We don't publish lists of known bugs. For one thing, bugs are filed and fixed daily, so the list would be constantly changing. For another, most bugs are rather obscure. You would not be able to tell in general whether you were running into any of the bugs on a "known bug" list.
Bugs that affect a broad range of programmers are documented in the Release Notes and in the C++ FAQ, which are on the developers.sun.com web site. Simon's blog
http://blogs.sun.com/sga/
discusses the status of some popular C++ open source libraries like BOOST and Loki.
If you have a service contract with Sun, you can file bugs for immediate attention, be kept informed of progress, and get early access to a compiler that fixes your problem.
If you don't have a service contract, you can check the Sun Studio patch page
http://developers.sun.com/sunstudio/downloads/patches/index.jsp
to find the latest patches, and see whether a bug of interest has been fixed. You can also file bugs at http://bugs.sun.com.