看代码的时候看到一种写法
template<typename A, typename D>
class A
{
...
void test(void* ptr = nullptr) {
if (mptr) {
A()(&ptr, size);
D()(mptr);
}
}
...
private:
void * mptr;
};
struct test1 {
void operator()(void** ptr, size_t size) { ... };
}
struct test2 {
void operator()(void* ptr) { ... };
}
using test3 = test
int main()
{
...
}
请问D()(mptr)这个是什么写法 而为什么我改成D(mptr)编译可以通过,但A()(&ptr, size)改成A(&ptr, size)就可以通过?