template<typename... Tn>
std::enable_if<sizeof...(Tn) == 0, void>
insert(T&& value) {
}
template<typename... Tn>
std::enable_if<sizeof...(Tn) != 0, void>
insert(T&& value) {
}
根据编译错误,调用例如obj.insert<double>(value)
含糊不清。但是,当sizeof...
只能是0或不是0时,为什么它不明确?
答案 0 :(得分:3)
声明格式不正确。正确的语法是:
template<typename... Tn>
typename std::enable_if<sizeof...(Tn) == 0, void>::type
insert(T&& value) {
}
请注意添加的typename
和::type
。