我正在做有关C ++模板的工作,我想实例化一个模板化的类而不先定义它的类型。在输入一些用户信息之后,我希望能够根据用户输入正确定义具有特定类型的类。声明之后,无论类型如何,我都希望按正常方式处理该类。
我定义了一个音频类,其类型可以为int16_t或int8_t,具体取决于用户加载的是16位音频原始数据还是8位原始音频。我不想像对待腰部那样单独处理每个人,我觉得有更好的方法来做。
audio.h中音频类的片段
template<typename T>
class audio{
...
void exampleFunction(); // example function
}
我不想做什么,但是提供了所需的功能:
#include "audio.h"
main(...){
bool is16Bit = //user input
if(is16Bit){
audio<int16_t> a = audio<int16_t>();
a.exampleFunction();
}else{
audio<int8_t> a = audio<int8_t>();
a.exampleFunction();
}
}
我想做什么,但是我不确定如何做:
#include "audio.h"
main(...){
bool is16Bit = //user input
audio<???> a;
if(is16Bit){
a = audio<int16_t>();
}else{
a = audio<int8_t>();
}
a.exampleFunction();
}
我希望能够执行完整的函数调用列表,而不必将其复制并粘贴到每个if语句中