Применить аргументы шаблона к функции без вызова функции? - PullRequest
0 голосов
/ 07 ноября 2019

Как применить только аргументы шаблона к функции, которая ожидает аргументы шаблона, без неявного вызова функции с нулевыми аргументами? Я хочу указатель функции или делегата вместо значения.

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

1 Ответ

2 голосов
/ 07 ноября 2019

Если у вас была обычная функция

void foo() {}

и вам нужен указатель на нее, как бы вы это сделали?

&foo

Теперь предположим, что у вас есть шаблон:

void foo(T)() {}

и хотите указатель на конкретный экземпляр ... вы, вероятно, можете догадаться на этом этапе:)

&foo!arg
...