如何在c++中为模板函数实例创建快捷方式
How to make a shortcut for a template function instance in c++?
我想在模块(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 auto
或inline constexpr auto
。
变量仍然不好,因为它们删除了重载、默认参数,并可能导致不必要的间接性。
不幸的是,据我所知,没有一个好的方法
using binom = boost::math::binomial_coefficient;
差不多了,但不包括<double>
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 如何使用非默认构造函数实例化模板化类
- C++ - 使用另一个类的构造函数实例化一个对象
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 与参数匹配的友元模板函数实例化
- c++如何获取模板函数实例的地址
- 在保证复制的世界中构造函数实例化
- SFINAE 和模板函数实例化:为什么在启用了 SFINAE 类型的函数参数中使用模板参数时无法推断模板参数?
- 防止复制构造函数实例化 C++11 类"deleting"
- 如何键入定义一个专门的 std::set 模板,使用特定的比较函数实例化
- 没有 std::string .erase() 的重载函数实例
- C 矢量构造函数实例冲突
- 确保只有一个函数实例在运行?
- 使用不同类型的模板函数实例化
- C 调用模板构造函数实例化
- 没有与参数列表错误匹配的重载函数" "实例
- 为什么很清楚模板函数实例化不会内联
- 没有unordered_map的模板函数实例
- 模板函数实例化文件
- 模板函数实例化的可移植性问题