Created attachment 20920
Small source code file to reproduce the problem.
When compiling the attached file
bash> clang++ --std=c++17 bug.C
clang errors out with:
bug.C:14:15: error: no matching constructor for initialization of 'Sub<double>'
Sub<double> sub(nullptr);
^ ~~~~~~~
bug.C:8:8: note: candidate constructor (the implicit copy constructor) not
viable: no known conversion from 'nullptr_t' to 'const Sub<double>' for 1st
argument
struct Sub : public Base<T, T> {
^
bug.C:8:8: note: candidate constructor (the implicit move constructor) not
viable: no known conversion from 'nullptr_t' to 'Sub<double>' for 1st argument
struct Sub : public Base<T, T> {
^
bug.C:8:8: note: candidate constructor (the implicit default constructor) not
viable: requires 0 arguments, but 1 was provided
1 error generated.
It seems the base class constructor Base(double*) is not picked up despite the
using base = Base<T, T>;
using typename base::Base;
Works in gcc 8.2.0.
bug.C
(230 bytes, text/x-c++src)