是否可以使用c++模板来控制代码生成
Is it possible to use C++ template to control code generation?
是否可以使用c++模板来控制代码生成?
类似于(伪代码…)
template<int i, int j> void f() {
#if i > j
#define
//code...
#else
//code...
#endif
}
(我开始使用模板,但我想知道它们有多强大)。
谢谢!
这样的元编程通常是结合专门化和重载来完成的。在您的情况下,标记分派(将值转换为类型)是一个可行的解决方案:
#include <type_traits>
void f_impl(std::true_type) { /* ... */ }
void f_impl(std::false_type) { /* ... */ }
template <int i, int j> void f() {
f_impl(std::integral_constant<bool, (i > j)>());
}
相关文章:
- LLVM |如何实现逻辑非操作的 IR 代码生成
- C++基于输入参数的动态代码生成
- C++使用代码生成错误
- C++代码生成核心文件,就像 gdb >> gcore 一样
- 卤化物:X86汇编代码生成
- 如何将 MATLAB 图像处理库内置函数转换为 MATLAB 编码器代码生成不支持的 C++?
- 为什么我的代码为同一代码生成不同的值
- 我应该担心动态代码生成与用C++编写的其他模块不匹配吗?
- 企业架构师 - 单独的代码生成标头和实现
- C++ 代码生成和模板专用化
- IBM Rhapsody c++ 代码生成 - 为什么总是在状态图周围放置一个活动状态
- 如何从 c++ 代码生成 arm64-v8a 64 位共享对象?
- 在语法文件上运行C 的ANTL4解析器显示错误33:缺少代码生成模板非局部trrefheader
- 使用LLVM在代码生成期间,更喜欢LLVM :: StringMap或STD :: MAP
- 如何根据模板参数制作代码生成
- 如何在C++中使用以下代码生成秒表/倒计时
- 为什么 C++ 和 Python 中的相同代码生成不同的输出?
- 获取 llvm::MCJIT 代码生成后的函数大小
- JIT代码生成后,如何检索LLVM ::指令地址
- 是否可以使用c++模板来控制代码生成