我有一个库,模板类/函数经常访问输入类型的显式成员,如下所示:
template <
typename InputType>
bool IsSomethingTrue(
InputType arg1) {
typename InputType::SubType1::SubType2 &a;
//Do something
}
在这里,SubType1
andSubType2
本身就是用于实例化的泛型类型InputType
。有没有办法快速找到库中所有可以传入的类型InputType
(同样是 forSubType1
和SubType2
)?到目前为止,我只是在整个代码库中搜索包含适当成员的类,但是模板输入名称在很多地方被重用,因此非常麻烦。
从编码的角度来看,当只有有限的一组可能已经定义的有效输入类型时,使用这样的模板有什么意义?为什么不直接用显式类型重载这个函数而不是让它们泛型呢?