我搜索过这个网站,无法找到问题的解决方案.我尽可能地减少了我的示例代码,同时仍保留相关错误.我留下了以下两个文件:
test.hpp
namespace models {
template<typename FloatingPoint>
class ellipsoid {
public:
explicit ellipsoid(FloatingPoint = 6378137.0);
private:
FloatingPoint a_;
};
template<typename FloatingPoint>
ellipsoid<FloatingPoint>::ellipsoid(FloatingPoint a) : a_(a) {}
} // End namespace models
// Function declaration
template<typename FloatingPoint>
FloatingPoint compute(FloatingPoint,
const models::ellipsoid<FloatingPoint>& =
models::ellipsoid<FloatingPoint>());
// Function definition
template<typename FloatingPoint>
FloatingPoint compute(FloatingPoint x,
const models::ellipsoid<FloatingPoint>& model) {
return 3.14;
}
Run Code Online (Sandbox Code Playgroud)
TEST.CPP
#include "test.hpp"
int main() {
compute(10.0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我使用VC++ 2017编译上面的代码时,我收到以下错误:
error C2512: 'models::ellipsoid<FloatingPoint>': no appropriate default constructor available
note: No constructor …Run Code Online (Sandbox Code Playgroud)