我正在嘗試使用某種型別的單個變數,可以將其分配給某些 C 標準函子(例如:std::plus、、std::multiplies等...)
這是std::plus(來自此鏈接)的定義:
template <class T> struct plus : binary_function <T,T,T> {
T operator() (const T& x, const T& y) const {return x y;}
};
我試過了
#include <functional>
std::binary_function<int, int, int> func = std::plus;
但它不起作用。如何正確定義它?
uj5u.com熱心網友回復:
保存具有相同簽名的各種可呼叫物件的單個變數是std::function<int(int,int)>. 盡管仿函式需要指定模板引數或從引數中推斷出它們:
std::function<int(int,int)> func2 = [](int a,int b){ return std::plus{}(a,b);};
或者
std::function<int(int,int)> func = std::plus<int>{};
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/485502.html
上一篇:具有已實作函式的結構向量中的錯誤
