作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 C++ 中有以下代码:
struct A;
struct B
{
B(){}
template<typename T>
B(T param){}
};
我希望构造函数模板仅在类型名 T
可转换为类型 A
时才有效。实现此目标的最佳方法是什么?
最佳答案
您想启用构造函数if T
可转换为A
?使用 std::enable_if
和 std::is_convertible
:
template <
class T,
class Sfinae = typename std::enable_if<std::is_convertible<T, A>::value>::type
>
B(T param) {}
这可以通过应用 SFINAE 来实现;如果 T
不能转换为 A
,替换将失败,构造函数将从候选重载集中移除。
关于c++ - 编写条件可选构造函数的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833682/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!