编译这个:
#include <iostream>
#include <memory>
template <auto val = 42>
struct A
{
A()
{
std::cerr << val << "\n";
}
};
int main(int argc, const char* argv[])
{
std::shared_ptr<A> a_ptr {new A {}};
return 0;
}
出现错误:使用类模板'A'需要模板参数。尽管我为非类型模板参数提供了默认值,希望编译器能够看到并使用它。我在这里错过了什么?
谢谢。
A<>
来实现该功能。 - Andrew TomazosA a;
可以正常工作,但std::shared_ptr<A<>> ptr;
需要更多信息的原因。 - Cedric