是否有可能(简单地)在没有模板可用的情况下实现C ++模板行为?我正在使用没有该功能的嵌入式C ++工具链,但如果我可以复制它肯定会有用。
作为一个用法示例,我想为不同类型创建许多循环缓冲区。目前,我只有一个uint8_t
循环缓冲区,但我需要更多。
答案 0 :(得分:3)
您不必为每个实现重写它,只需将实际定义包装在宏中:
#define GenerateCircBufClass(T)\
class CircBuf_impl_##T \
{\
public: \
CircBuf_impl_##T(); \
~CircBuf_impl_##T(); \
// etc...
};
GenerateCircBufClass(uint8_t)
GenerateCircBufClass(float)
// etc...