https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119452
Bug ID: 119452
Summary: Should copy ctor of template class be allowed to have
specified template argument?
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rush102333 at gmail dot com
Target Milestone: ---
Consider the following code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
template<typename T>
class Box
{
public:
Box(const Box<int>&)=default;
//Box(const Box<T>&)=default;
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is rejected by gcc and MSVC, but accepted by clang:
https://godbolt.org/z/j641vq7W8
I thought it was clang's bug but the developer indicated that this should be
well-formed as sema analysis should be delayed until template instantiation.
I'm quite puzzled about that.
Please see the discussion on llvm's bug tracker:
https://github.com/llvm/llvm-project/issues/99749