gpt4 book ai didi

c++ - 具有 bool 模板参数的成员函数的显式模板实例化

转载 作者:行者123 更新时间:2023-12-02 10:18:29 24 4
gpt4 key购买 nike

我不确定当template参数是 bool(boolean) 类型而不是类型时如何显式实例化模板。我将代码简化为一个简短的示例。我从clang(使用-std=c++2a)得到的错误是:

Vec.cpp:13:20: error: explicit instantiation of 'angle' does not refer to a function template, variable template, member function, member class, or static data
member
template bool Vec::angle<false>;

这是我的代码:

Vec.hpp:
class Vec {
public:
template <bool degrees>
double angle(void);
};


Vec.cpp:
#include "Vec.hpp"
template <bool degrees>
double Vec::angle(void) {
if constexpr (degrees) {
// degree math
return 360;
} else {
// radian math
return 2*3.14;
}
}

template bool Vec::angle<false>; // I don't understand what I should put here

main.cpp:
#include "Vec.hpp"
#include <iostream>

int main(void) {
Vec v;
std::cout << v.angle<false>() << "\n";
return 0;
}

最佳答案

template double Vec::angle<false>();
template double Vec::angle<true>();

错字加上您也错过了 ()

关于c++ - 具有 bool 模板参数的成员函数的显式模板实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61134107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com