当前位置: 代码迷 >> 综合 >> c++11或c++14或c++17参数包的使用
  详细解决方案

c++11或c++14或c++17参数包的使用

热度:27   发布时间:2024-01-26 02:15:31.0

#include <iostream>

//张开函数啦
template<typename T>
void display1(T a)
{
std::cout << a << std::endl;
}

template<typename T = void>
void display1()
{
std::cout << "void" << std::endl;
}

//逗号展开函数
template<typename T=void,typename ... Args>
void display1(T first ,Args&... args)
{
std::cout << first << std::endl;
display1<T>(args...);
}

template<typename T = void, typename... Args>
void display(Args& ... args)
{
if (std::is_void_v<T>) {
display1<T>();
}
else if (std::is_integral_v<T>)
{
std::cout << "int" << std::endl;
display1<T>(args...);
}

}

int main()
{
int a = 10;
int b = 100;
int c = 200;
display<>();//支持

    display<int>(a,b,c);
}

  相关解决方案