簡體   English   中英

C ++函數ptr在unorderer_map中,編譯時錯誤

[英]c++ function ptr in unorderer_map, compile time error

我正在嘗試實現undefined_map,該unorderer_map實現為apped_type,我正在觀看一些實現這些效果的示例,但我無法使其工作。 這是代碼:

#include<string>
#include <unordered_map>
namespace Test
{
  class Example
  {
  public:
    Example()
    {
      auto aPair=std::make_pair("one",&Example::procesString);
      map.insert(aPair);
    }
    void procesString(std::string & aString)
    {

    }
    void processStringTwo(std::string & aString)
    {

    }
    typedef void(*fnPtr)(std::string &);
    std::unordered_map<std::string,fnPtr> map;
  };
}

int main()
{
  return 0;
}

我收到此編譯時錯誤:

錯誤:沒有匹配函數調用'std :: unordered_map,void(*)(std :: basic_string&)> :: insert(std :: pair,void(Test :: Example :: *)(std :: basic_string&) >&)'

謝謝!

函數指針和成員函數指針是兩個不同的事物。 您要么需要向地圖添加一個自由函數,要么需要更改地圖以采用成員函數指針。 如果要使用成員函數指針,則可以使用以下命令:

typedef void(Example::*fnPtr)(std::string &);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM