具有已知类型的别名功能模板

时间:2016-07-09 16:49:09

标签: c++ templates alias

如果我想在c ++中为已知类型的模板类别名,我会这样做:

using MyVector = std::vector<MyClass>;

我如何为功能模板做同样的事情?

template <typename T> void MyFunction(T MyValue);

我试过了:

using MyIntFunction = MyFunction<int>;

但它不起作用。

2 个答案:

答案 0 :(得分:2)

别名声明旨在为类型引入别名。

无论如何,你可以使用constexpr变量做你想做的事情(我怀疑):

constexpr auto MyIntFunction = &MyFunction<int>;

它遵循一个最小的工作示例:

#include<iostream>

template <typename T>
void MyFunction(T MyValue) {
    std::cout << MyValue << std::endl;
}

constexpr auto MyIntFunction = &MyFunction<int>;

int main() {
    MyIntFunction(42);
}

答案 1 :(得分:1)

你不能对函数使用模板别名,没有这样的语法。