【发布时间】:2019-03-12 01:23:16
【问题描述】:
我想做一个接受类型的函数,并通过循环或递归再次调用自己。
我已经尝试过的是下面,但它只调用了基函数(用AModule类调用了基函数,没有用BModule.调用函数
class AModule {
};
class BModule {
};
auto main() -> int {
init<AModule, BModule>()
return 0;
}
template<typename Module>
void init() {
// BASE FUNCTION
// Do something
}
template<typename... Modules>
void init() {
(init<Modules>(), ...)
}
【问题讨论】:
-
你能详细说明问题是什么吗?您提供的代码根本不应该编译(
init没有在main之前声明) - 即使您修复了这个问题并添加了缺少的分号,我也不希望您描述的行为(打电话给init<A>,但不是init<B>),我希望对init<B>有一个模棱两可的电话。
标签: c++ templates recursion c++17 variadic-templates