如何在c++中为模板函数实例创建快捷方式

How to make a shortcut for a template function instance in c++?

本文关键字:函数 实例 创建 快捷方式 c++      更新时间:2023-10-16

我想在模块(cpp文件(中使用boost::math::binomial_coefficient<double>。但与其每次都写那么多噪音,我想给它一个简单的名字binom。但我很难找到一个体面的方法来做这件事

#define当然可以,但建议避免使用宏。

将它封装到我自己的函数中也是一种选择,但它很难看,污染了头部,而且有点违背目的。

我希望我可以使用using来创建快捷方式,但它无法编译:

using binom = boost::math::binomial_coefficient<double>;
// -> error: expected a type

我知道我可以使用typedef为模板类型(类(创建别名,但我不知道如何将其用于函数。

我也尝试将函数分配给一个变量,但我得到了一个警告:

auto binom = boost::math::binomial_coefficient<double>;
// -> warning: no previous extern declaration for non-static variable 'binom'

使用const auto而不是auto,或者使用最近的编译器尝试static constexpr autoinline constexpr auto

变量仍然不好,因为它们删除了重载、默认参数,并可能导致不必要的间接性。

不幸的是,据我所知,没有一个好的方法

using binom = boost::math::binomial_coefficient;

差不多了,但不包括<double>