包装器用作重载操作符的功能

时间:2017-10-24 19:01:03

标签: c++ wrapper

请您解释一下这个定义的含义是什么?我将此视为Task结构的重载模板函数,它调用带参数./gradlew build -x test -x lint 的函数并将返回的结果强制转换为args类型。

T

这样做有什么意义?对我来说,它看起来非常过分。

1 个答案:

答案 0 :(得分:2)

此代码:

(*static_cast<const T*>(this))(args...);

在逻辑上等同于:

const T *ptr = static_cast<const T*>(this);
const T &ref = *ptr;
ref(args...);

我认为现在应该清楚该语句的作用(它不会像你想的那样从函数调用中转换返回值)