0

我有一个模板类型等于函数返回类型的模板化函数包装器。此外,函数的第一个参数是指向包装器本身的指针。

template<typename R>
struct wrapper_t{
    using result_t = R;
    template<typename F, typename ...Ts>
    wrapper_t(F &&, Ts &&...){

    }
};
int foo(wrapper_t<int>*,double){
    return 2;
}

我在这里尝试使用用户定义的推导指南,以避免指定模板类型,这样我就可以像使用它一样

wrapper_t wrapper(foo,1.0);

但是由于递归,我不知道应该用什么替换以下指南中的问号。

template<typename F, typename ...Ts>
wrapper_t(F &&, Ts &&...)->wrapper_t<std::invoke_result_t<F,/*???*/,Ts...>>;

ctad 在这里仍然可行吗,如果可以,怎么办?

4

0 回答 0