请您解释一下这个定义的含义是什么?我将此视为Task结构的重载模板函数,它调用带参数./gradlew build -x test -x lint
的函数并将返回的结果强制转换为args
类型。
T
这样做有什么意义?对我来说,它看起来非常过分。
答案 0 :(得分:2)
此代码:
(*static_cast<const T*>(this))(args...);
在逻辑上等同于:
const T *ptr = static_cast<const T*>(this);
const T &ref = *ptr;
ref(args...);
我认为现在应该清楚该语句的作用(它不会像你想的那样从函数调用中转换返回值)