http://llvm.org/bugs/show_bug.cgi?id=20570

            Bug ID: 20570
           Summary: clang C++ partial specialization of nested template
                    (reject valid)
           Product: clang
           Version: 3.4
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected]
    Classification: Unclassified

Bug appears when you try to specialize template within another template.

Minimal snippet:
=============================
template <class>
struct Foo
{
    template <class>
    struct Bar;
};

template <class T>
template <>
struct Foo<T>::Bar<int>
{};
=============================

However, if you add an one additional (undeductional) parameter in the
specialization, the code is compiled. "template <class>" instead of "template
<>".

Minimal snippet (is working):
=============================
template <class>
struct Foo
{
    template <class>
    struct Bar;
};

template <class T>
template <class>
struct Foo<T>::Bar<int>
{};
=============================

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to