当前位置:  开发笔记 > 编程语言 > 正文

提供Function参数的最佳方法

如何解决《提供Function参数的最佳方法》经验,为你挑选了1个好方法。

我有一个Api,它将两个struct作为参数

struct bundle{
int a;
int b;
int c;
};

void func(const bundle& startBundle, const bundle& endBundle);

此外,我必须编写另一个具有相同要求的API,而不是在bundle结构中的int,它应该是double.

我可以编写2个结构(1个用于int,1个用于double)但似乎不太好,如果我使用结构,则函数有太多的参数(3个开头的agruments和3个结尾的agruments).请提出一些正确的方法来解决这个问题.

另外如果我必须使用endBundle的默认参数,我该如何使用它?



1> TartanLlama..:

你可以制作bundle一个模板:

template 
struct bundle {
    T a;
    T b;
    T c;
};

void func(const bundle& startBundle, const bundle& endBundle); 

或者您可以使用std::array:

using IntBundle = std::array;
using DoubleBundle = std::array;
void func(const IntBundle& startBundle, const IntBundle& endBundle); 

如果您想在同一个包中使用不同的类型,则可以使用std::tuple:

using IntBundle = std::tuple;
using OtherBundle = std::tuple; 

或者制作bundle三个模板参数:

template 
struct bundle {
    A a;
    B b;
    C c;
};

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有