어떻게 아래 코드를 단순화 할 수 있습니까? 여기에 튜플을 사용할 수 있습니까? 그렇다면 어떻게 설명 할 수 있습니까? 템플릿 구현에서std :: function을 매개 변수로 사용하는 변형 템플릿
template<typename Out, typename T1, typename T2, typename T3, typename T4>
void ProcessIncomingCommand(PClientContext pClientContext,
DWORD & bytesProcessed,
const std::function<Out(T1, T2, T3, T4)> &function,
const std::vector<UINT> ¶ms);
template<typename Out, typename T1, typename T2, typename T3>
static void ProcessIncomingCommand(PClientContext pClientContext,
DWORD & bytesProcessed,
const std::function<Out(T1, T2, T3)> &function,
const std::vector<UINT> ¶ms);
template<typename Out, typename T1, typename T2>
static void ProcessIncomingCommand(PClientContext pClientContext,
DWORD & bytesProcessed,
const std::function<Out(T1, T2)> &function,
const std::vector<UINT> ¶ms);
는 UINT
의 std::vector
통과 매개 변수 함수를 호출 할 필요가있다. 매개 변수가 다를 수 있으므로 적절한 유형으로 변환해야합니다.
auto resFromFunction= function(params.at(0),
params.at(1),
static_cast<T3>(params.at(2)),
static_cast<T4>(params.at(3)));
log0 대답은 어떻게 사용할 수 있습니까?
template<typename Out, typename... T>static void ProcessIncomingCommand(PClientContext pClientContext,
DWORD & bytesProcessed,
const std::function<Out(T...)> &function,
const std::vector<UINT> ¶ms)
뭔가를 원하는 것 같습니다? 이 코드의 목적은 무엇입니까? – InternetAussie
튜플은 무엇에 익숙합니까? – log0
실현에서 나는 매개 변수 UINT의 벡터에 의해 전달 된 함수를 호출합니다. 벡터의 유형은 템플릿 args (T ...)와 다를 수 있습니다. 나는 그들을 적절한 유형으로 캐스팅해야합니다. 예 : function (static_cast (params.at (0)), ...) 등이 여기에 템플릿을 사용하는 적절한 방법입니까? –