void成员函数的元组
tuple of void member functions
我正试图创建一个元组,其中包含一个指向void成员函数的指针,但我很难使其工作。这是我的代码:
class A
{
void dostuff(){ cout<<" doing stuff "}
};
class B
{
A* aobj;
typedef vector<vector<tuple<int,int,void(A::*)()>>> sequence;
sequence Sequence;
void getinfo(int n1, int n2, void(A::*func)())
{
Sequence.resize(1);
Sequence[0].push_back(make_tuple(n1,n2,(aobj->*func)()))//<--ERROR HERE
};
};
它给了我一个错误"无效使用void表达式"我还试图将函数简化为:
void getinfo(void(A::*func)())
{
make_tuple((aobj->*func)());
}
它仍然给我同样的错误。
正如Igor Tandetnik所指出的,(aobj->*func)()正在调用该方法,并将void返回给make_tuple()函数。要传递成员指针,它应该是make_tuple(n1,n2,func)。
相关文章:
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- 如何在可变参数模板函数中遍历可变参数元组?
- 提升精神 QI:在元组上自动规则演绎,在替代函数中带有序列
- 使用函数的元组返回多个值的问题
- 将函数应用于元组中的每个元素,将每个元素强制转换为类型包中的不同类型,然后作为参数包传递
- 从函数的可变参数构建特定元组
- 您自己的类型的结构化绑定,不是结构或元组(通过公共成员函数)
- 从函数返回元组时,将复制元组的参数,而不是移动元组参数
- 从可调用可变参数元组中的函数结果创建元组
- 从类型元组到通过调用模板函数返回的值数组
- 为模板中的元组创建递归函数
- 如何为返回枚举元组的 C++ 函数编写 cython 包装器?
- 元组尺寸默认构造函数及其转换为std :: size_t
- 使用单参数模板化构造函数,从引用元组构造值元组
- 在函数呼叫时,请从异质初始化列表中构建元组
- 带有映射的 Lambda 函数,其中键是元组,值是双精度
- CPP 元编程:包含元组函数
- 如何编写对转发的引用元组进行操作的constexpr函数
- 将函数的返回值存储在元组中
- 将一系列元组解压缩为 n 元函数