首页 > 解决方案 > 将模板参数应用于函数而不调用函数?

问题描述

如何仅将模板参数应用于需要模板参数的函数,而不隐式地调用具有零参数的函数?我想要一个函数或委托指针而不是一个值。

void foo(T)(double x) {}

auto bar() {
    return foo!(int);
}
hack.d(36): Error: function hack.foo!int.foo(double x) is not callable using argument types ()
hack.d(36):        missing argument for parameter #1: double x

标签: d

解决方案


如果你有一个普通的功能

void foo() {}

你想要一个指向它的函数指针,你会怎么做?

&foo

现在,假设您有一个模板:

void foo(T)() {}

并想要一个指向特定实例的指针......你可能会猜到这一点:)

&foo!arg

推荐阅读