我遇到過一個用例,其中std::mem_fn無法執行手動包裝函數可以執行的操作。它出現在包裝功能上使用的東西的方法的類的,而是一個類型隱式轉換到它: #include <functional>
struct A
{
};
struct B
{
B(A); // implicit conversion from A to B
void foo() const;
}
mem_fun和mem_fun_ref和許多其他成員函數適配器可以使成員函數的行爲類似於或不是函數。但是有一個限制,他們調用的成員函數必須是const之一。我開始瞭解如何使用它們,但是它背後的原因讓我感到困惑和困惑。爲什麼這樣設計? 更新: 對不起。寫下面的例子。 class A
{
...
//void fun(){cout<<"Fun";} This is not con