我想創建一個模糊控制器的跳轉表。基本上,我有很多的是採取一個字符串並返回一個浮動的功能,我想能夠沿線做一些事情:如何創建一個帶參數的成員函數指針數組?
float Defuzzify(std::string varName, DefuzzificationMethod defuzz)
{
return functions[defuzz](varName);
}
其中DefuzzificationMethod是一個枚舉。目標是避免一個switch語句並執行O(1)操作。
我有現在的問題是:
float CenterOfGravity(std::string varName);
std::vector<std::function<float (std::string)>> defuzzifiers;
然後我嘗試用初始化它在構造函數中:
defuzzifiers.reserve(NUMBER_OF_DEFUZZIFICATION_METHODS);
defuzzifiers[DEFUZZ_COG] = std::bind(&CenterOfGravity, std::placeholders::_1);
這使編譯器拋出約enable_if約100個錯誤(我不要在任何地方使用,所以我認爲std是)。有沒有辦法讓這個編譯?此外,是否有辦法使這個靜態向量,因爲每個模糊控制器將基本上具有相同的向量?提前
感謝
請解釋正確的一個。做這項工作讓我瘋狂,因爲參考文獻很少。 –