将可变参数函数模板参数传递给另一个函数

史蒂夫·M

我试图将我的包传递给另一个函数,它看起来与我在教程中看到的相似,但显然不够相似:

class algorithm
    {
        typedef uint64_t time_type;
    protected:
        std::string name;
        time_type result;

        template <typename... Args>
        void execute(const Args&...);

    public:
        algorithm(std::string name);

        //virtual void prepareTest()=0;
        template <typename TimeT, typename... Args>
        void beginTest(const Args&...);
        void printResult();
        time_type getResult();

    };

    template <typename TimeT, typename... Args>
    void algorithm::beginTest(const Args&... args)
    {
        auto start = chrono::high_resolution_clock::now();

        execute(args...);

        auto duration = chrono::duration_cast<TimeT>
                    (chrono::high_resolution_clock::now() - start);

        result = duration.count();
    }

    template <typename... Args>
    void execute(const Args&... args)
    {
        //nothing here yet
    }

实例化算法和beginTest()时,出现链接器错误:

const int n = 100000;
const int m = 1000;
algortest::algorithm brutus("brutus");
brutus.beginTest<chrono::milliseconds>(n, m);

架构x86_64的未定义符号:“ void algortest :: algorithm :: execute(int const&,int const&)”,引用自:void algortest :: algorithm :: beginTest>,int,int>(int const&,int const&)in main .o ld:找不到架构x86_64的符号

我做错了什么?另外,是否可以在派生的算法类中覆盖execute()?

卡梅伦

您忘了executewith的定义的前缀algorithm::是全部:-)

它应显示为:

template <typename... Args>
void algorithm::execute(const Args&... args)
{
    // ...
}

您可能还希望对参数使用完全转发,而不是强制通过引用传递它们-而不是const Args&...在调用函数时使用Args&&...,然后再std::forward<Args>(args)...调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将可变参数模板参数传递给可变函数

来自分类Dev

将匿名函数作为唯一参数传递给另一个函数(C ++)

来自分类Dev

参数包未使用'...'扩展-另一个gcc可变参数模板错误?

来自分类Dev

在Swift中将可变数量的args从一个函数传递给另一个函数

来自分类Dev

将一个函数的参数传递给另一个函数?

来自分类Dev

PHP如何将可变长度函数参数传递给另一个可变长度函数?

来自分类Dev

如何在Golang中将可变长度参数作为参数传递给另一个函数?

来自分类Dev

将函数输出作为参数传递给另一个函数

来自分类Dev

将成员函数传递给可变参数模板函数

来自分类Dev

如何将可变函数参数作为参数传递给另一个函数?

来自分类Dev

如何将可变参数从一个模板传递到另一个

来自分类Dev

如何将非静态成员函数作为模板参数传递给另一个成员函数?

来自分类Dev

将模板化函数作为参数传递给另一个函数

来自分类Dev

将可变参数模板函数参数传递给另一个函数

来自分类Dev

如何传递可变参数模板函数?

来自分类Dev

如何将可变参数传递给另一个函数

来自分类Dev

将一个函数传递给另一个函数的参数

来自分类Dev

在Swift中将可变数量的args从一个函数传递给另一个函数

来自分类Dev

PHP如何将可变长度函数参数传递给另一个可变长度函数?

来自分类Dev

C ++将模板参数包从一个可变参数模板传递到另一个可变参数模板会导致编译器错误

来自分类Dev

如何在C ++中将可变参数函数与另一个函数消除歧义

来自分类Dev

将一个函数的返回参数值传递给另一个烧瓶

来自分类Dev

如何将可变参数模板参数转换为另一种类型以调用另一个函数?

来自分类Dev

将可选函数(和可选参数)传递给 Python 中的另一个函数?

来自分类Dev

将一个函数模板的模板参数映射到另一个 (c++) 的模板参数

来自分类Dev

将可变函数参数传递给 PHP 中的另一个函数

来自分类Dev

将可变参数模板传递给 pthread_create

来自分类Dev

将函数参数作为参数传递给python中的另一个函数

来自分类Dev

如何将参数传递给作为另一个函数参数的函数

Related 相关文章

  1. 1

    将可变参数模板参数传递给可变函数

  2. 2

    将匿名函数作为唯一参数传递给另一个函数(C ++)

  3. 3

    参数包未使用'...'扩展-另一个gcc可变参数模板错误?

  4. 4

    在Swift中将可变数量的args从一个函数传递给另一个函数

  5. 5

    将一个函数的参数传递给另一个函数?

  6. 6

    PHP如何将可变长度函数参数传递给另一个可变长度函数?

  7. 7

    如何在Golang中将可变长度参数作为参数传递给另一个函数?

  8. 8

    将函数输出作为参数传递给另一个函数

  9. 9

    将成员函数传递给可变参数模板函数

  10. 10

    如何将可变函数参数作为参数传递给另一个函数?

  11. 11

    如何将可变参数从一个模板传递到另一个

  12. 12

    如何将非静态成员函数作为模板参数传递给另一个成员函数?

  13. 13

    将模板化函数作为参数传递给另一个函数

  14. 14

    将可变参数模板函数参数传递给另一个函数

  15. 15

    如何传递可变参数模板函数?

  16. 16

    如何将可变参数传递给另一个函数

  17. 17

    将一个函数传递给另一个函数的参数

  18. 18

    在Swift中将可变数量的args从一个函数传递给另一个函数

  19. 19

    PHP如何将可变长度函数参数传递给另一个可变长度函数?

  20. 20

    C ++将模板参数包从一个可变参数模板传递到另一个可变参数模板会导致编译器错误

  21. 21

    如何在C ++中将可变参数函数与另一个函数消除歧义

  22. 22

    将一个函数的返回参数值传递给另一个烧瓶

  23. 23

    如何将可变参数模板参数转换为另一种类型以调用另一个函数?

  24. 24

    将可选函数(和可选参数)传递给 Python 中的另一个函数?

  25. 25

    将一个函数模板的模板参数映射到另一个 (c++) 的模板参数

  26. 26

    将可变函数参数传递给 PHP 中的另一个函数

  27. 27

    将可变参数模板传递给 pthread_create

  28. 28

    将函数参数作为参数传递给python中的另一个函数

  29. 29

    如何将参数传递给作为另一个函数参数的函数

热门标签

归档