模板成员变量像通用函数一样键入
Template member variable typed like generic function
想象一个类似
的类class A
{
public:
template <bool S>
A(X<S> x) : x(x) { }
private:
X<S> x;
}
通过参数扣除,A类的构造函数可以推断出S的值。一个例子是:
void f() {
X<true> x;
A a(x);
}
问题在于,私人成员X对S不了解。
非常感谢
静态类型 class A
可以取决于其成员类型中的 S
的唯一方法是在其上进行模板:
template<bool S>
class A
{
public:
A(X<S> x) : x(x) { }
private:
X<S> x;
};
尽管f
中的类型然后需要是A<true>
,但在C 17中,我们可以像以前一样简短:
void f() {
X<true> x;
A a(x);
}
相关文章:
- JavaScript箭头函数:我们能否像C ++ lambdas一样捕获值
- 函数返回动态强制转换的指针,返回指针,就好像它根本没有被转换一样
- 为什么向量不支持 size 作为成员变量,就像 Java 类中的长度变量一样,而是函数 size()?
- 'inline'变量可以像内联函数一样内联吗?
- C++11: 如何编写一个像 Get 一样工作的模板函数<tuple>...但是收到参数包?
- 将参数传递给成员函数,就像使用 std::cout 一样
- 如何创建像标准库头一样的头,以便在不链接头中函数的所有对象文件的情况下编译程序?
- 模拟一个函数,该函数像操作员=和破坏者一样传播到每个字段
- 可变参数函数并复制粘贴这些参数(就像我们在宏中一样)
- 如何像函数一样调用构造函数
- 我多么应该将空指针传递给c ++函数,就像C#中的IntPter.Zero一样
- 模板成员变量像通用函数一样键入
- 可以像'funs[1]();'一样调用的函数数组
- 如何在C++中像函数一样存储参数矩阵
- Java是否有默认的复制构造函数(就像C++中一样)
- 函数来像访问向量一样访问向量中结构的元素
- 如何像C++中的函数指针一样,但针对变量
- 像函数 strcmp 一样逐个比较字符
- 使用发出与调用信号,就好像它是Qt中的常规函数一样
- 在Fortran中更新两个数组,就像在这个C++函数中一样