Skip to main content
 首页 » 编程设计

c++之可变参数的 value_type

2024年11月24日26unruledboy

我可以在 C++ 中进行这样的参数解包吗?这段代码无法编译,但我认为这是可能的。

template <typename Container, typename... Args> 
void foo(Container& container, Args&&... args){ 
    tuple<typename Container::value_type, typename Args::value_type...> values; 
    ... 
} 

请您参考如下方法:

Args&&... args是转发引用。如果你给它传递一个左值,在 Args 中对应的类型将被推导为左值引用。
typename Args::value_type仅在 Args 时有效是类类型,而不是类的引用。因此,您需要从类型中去除引用:

typename std::remove_reference_t<Args>::value_type...