首页 > 解决方案 > 根据运行时变量选择要调用的 C++ 模板

问题描述

我有一个 C++ 代码片段,如下所示:

void SaveDataInTxt(DataFormat fmt, const char *data, size_t size) {
    switch (fmt.bit_width) {
    case 8: return SaveDataInTxtImpl<int8_t>(data, size);
    case 16: return SaveDataInTxtImpl<int16_t>(data, size);
    case 32: return SaveDataInTxtImpl<int32_t>(data, size);
    }
}

只是想知道有没有更好的方法来摆脱这个 switch case 语句并将 SaveDataInTxtImpl() 的主体直接放在 SaveDataInTxt() 中。

谢谢!

标签: c++templates

解决方案


推荐阅读