带成员函数指针的元组
boost::tuple with member function pointer
由于某些原因,我得到了这个错误信息
类型void (S::* const)()'和'void (S::* const)()'到二进制'operator<'的无效操作数
:
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>
struct S
{
void f() {}
};
typedef void(S::*tdef)();
int main()
{
boost::tuple<tdef> t1(&S::f);
boost::tuple<tdef> t2(&S::f);
return t1 < t2;
}
Boost文档对在元组中使用成员函数指针非常守口如瓶(除了它们是有效元素之外),所以我真的不知道问题出在哪里,也不知道这些'const'限定符是如何进入表达式的。
提示吗?
元组将尝试在函数指针上进行比较,您只能比较函数指针是否相等。也请参考这个问题
函数指针在c++中没有相对可比性。支持相等比较,除非至少有一个指针实际指向虚成员函数(在这种情况下,结果未指定)。
相关文章:
- C++:TypeDef使用元组
- Pybind11:将元组列表从Python传递到C++
- 重载元组索引运算符-C++
- 在C++中,如何通过几种类型从元组中选择多个元素
- 将fold表达式与std::一起用于两个元组
- std::ranges::elements_view,用于自定义类似元组的数据
- 将元组的向量转换/构造为堆
- 专用于 std 元组的模板,而无需用户执行remove_cvref
- 将元组的向量构造成堆
- 如何通过指向元组的共享指针删除对象
- 是否访问指针元组和互斥锁线程安全
- 在参数包中获取函数指针的返回类型,并将其保存为与其他参数连接的元组
- 将功能指针及其参数作为推力::元组传递给全局函数
- 实现指针元组的深度复制
- c++在存储指针元组时遇到问题
- 指向返回对可变类型的引用的函数的指针的元组
- 带成员函数指针的元组
- 将std元组解包为指针
- "解包"元组以调用匹配函数指针
- 在可变模板函数中创建成员函数指针元组