如何解决从自己命名空间中的std导入的模板函数的显式实例化
我试图通过“使用”某些特定的std数学函数将现有的命名空间挂接到 std 功能上。问题在于,出于覆盖的原因,我想明确实例化模板功能,然后再实际在任何地方使用它们。之后,我想编写一些验证功能的单元测试。
示例
namespace foo {
using std::sin;
// ...
}
这很好,我可以写
foo::sin(0);
但是,显式模板实例不起作用
template double foo::sin<int>(int); // doesn't work (this is what i want)
如果我直接实例化std :: sin,它将起作用。
template double std::sin<int>(int); // works
对于明确的模板实例化,可以实现这种重用命名空间功能吗?
修改
有人将此问题标记为已回答here,但此帖子似乎有其他问题。我确实不要定义功能模板的特殊化(我自己的标准名称空间)。相反,我希望我的名称空间“模仿”一些数学函数的标准名称空间。
编辑2
我正在使用clang 9抛出错误。 GCC愉快地编译了代码。 (请参阅下面的评论)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。