C++ 无法将较短的名称分配给C++;函数模板

C++ 无法将较短的名称分配给C++;函数模板,c++,function,templates,using,C++,Function,Templates,Using,为了提高代码可读性,我尝试为函数模板指定较短的名称,如下例所示: #include <iostream> template<typename T> T func(T a, T b) { return a + b; } int main() { using fi = func<int>; using fd = func<double>; std::cout << fi(1, 1) <<

为了提高代码可读性,我尝试为函数模板指定较短的名称,如下例所示:

#include <iostream>

template<typename T>
T func(T a, T b)
{
    return a + b;
}

int main() 
{
    using fi = func<int>;
    using fd = func<double>;

    std::cout << fi(1, 1) << std::endl;
    std::cout << fd(1.0, 1.0) << std::endl;

    return 0;
}
#包括
模板
T func(T a,T b)
{
返回a+b;
}
int main()
{
使用fi=func;
使用fd=func;

std::cout使用引入了类型。函数模板及其实例不是类型


auto
替换
使用
将使您的代码能够编译并执行您可能想要的操作。许多CPMPiler都擅长内联简单的函数指针案例,因此在prod中可能不会对性能产生任何影响。

使用
typedef
如何?@ThomasMatthews:
typedef
,顾名思义,也引入了类型。
$ g++ func.cpp -o func
func.cpp: In function ‘int main()’:
func.cpp:11:11: error: expected nested-name-specifier before ‘fi’
     using fi = func<int>;
           ^