Imb*_*bue 4 c++ pointers member-function-pointers
在C++中,是否可以为成员函数指针定义排序顺序?似乎运算符<未定义.此外,施放到void*是违法的.
class A
{
public:
void Test1(){}
void Test2(){}
};
int main()
{
void (A::* const one)() = &A::Test1;
void (A::* const two)() = &A::Test2;
bool equal = one == two; //Equality works fine.
bool less = one < two; //Less than doesn't.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
函数指针在C++中没有关系可比性.除了至少有一个指针实际指向虚拟成员函数(在这种情况下结果未指定)的情况之外,支持等式比较.
当然,您总是可以通过实现比较谓词并明确地比较指针来引入排序(虽然看起来不会太优雅,因为您只能使用相等比较).其他可能的解决方案将跨越各种特定于实现的"黑客"领域.
| 归档时间: |
|
| 查看次数: |
3901 次 |
| 最近记录: |