有一些课程,他们的关系如下:
class X:A,B
class Y:A,B
class Z:A,B
Run Code Online (Sandbox Code Playgroud)
我想使用模板将一个将从A和B继承的常规类型传递给testFunction.我的代码如下:
template<template T:public A, public B>
void testFunction(T generalType)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
但是我的编译器告诉我它是错误模板.我该怎么办呢?
我的 nullPointcheck 函数:
template<typename T, typename... Args>
bool __nullPointCheck(T first, Args... args)
{
bool ret = true;
va_list vl;
auto n = sizeof...(args);
va_start(vl, n);
for (auto i = 0; i <= n; ++i)
{
auto p = va_arg(vl, T);
if (!p)
{
ret = false;
}
}
va_end(vl);
return ret;
}
Run Code Online (Sandbox Code Playgroud)
但我收到 ndk 构建错误,如下所示:
'va_start' used in function with fixed args
va_start(vl, n);
Run Code Online (Sandbox Code Playgroud)
当我将 va_start 中的第二个参数更改为第一个参数时,如下所示:
va_start(vl, first);
Run Code Online (Sandbox Code Playgroud)
ndk-build导出报错如下:
'va_start' used in function with fixed args
va_start(vl, first);
^ …Run Code Online (Sandbox Code Playgroud)