标签:code htm page rar 函数参数 https oid class 图片
今天在看源码的时候,面对以下有点蒙蔽,在这里对可变参数做一下总结。
主要理解取自一个博客,c版本的:https://www.cnblogs.com/bettercoder/p/3488299.html
示例输出如下:
更多详细解释请看: http://www.cplusplus.com/reference/cstdarg/va_arg/?kw=va_arg
c++中的TMP:
主要参考c++primer page:618-624 (当时觉得应该用不上这么魔幻的操作就跳过了 QAQ)
术语:
可变数目的目的参数被称为参数包(parameter packet)
模板参数包(template parameter packet)
函数参数包(function parameter packet)
template <typename T,typename... Args> void foo(const T& t, const Args& ... rest) { std::cout << sizeof...(Args) << endl; std::cout << sizeof...(rest) << endl; } int main() { foo(1, 2, 3, 4, 5, 6, 7, 8); system("pause"); return 0; }
都输出了7。
更高级的std::forward保证了模板传参时原来是右值的参数仍为右值,而不会变成左值。
详细如下:http://www.cplusplus.com/reference/utility/forward/?kw=forward
标签:code htm page rar 函数参数 https oid class 图片
原文地址:https://www.cnblogs.com/manch1n/p/10804070.html