小编ron*_*gen的帖子

使用模板将一般参数传递给函数

有一些课程,他们的关系如下:

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)

但是我的编译器告诉我它是错误模板.我该怎么办呢?

c++ templates

4
推荐指数
1
解决办法
78
查看次数

在具有固定参数错误的函数中使用“va_start”

我的 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)

c++ variadic-functions c++11 ndk-build

-1
推荐指数
1
解决办法
8277
查看次数

标签 统计

c++ ×2

c++11 ×1

ndk-build ×1

templates ×1

variadic-functions ×1