c++ - 如何获取除第一个之外的函数参数?
问题描述
以下是我目前的实现:
struct Dual {
float v;
std::valarray<float> d;
Dual(float v, std::valarray<float> d): v(v), d(d) {}
Dual(float v, float d = 0.f): v(v), d({d}) {}
};
Dual d0{1.f}; // OK.
Dual d1{1.f, 1.f}; // OK.
// Dual d2{1.f, 1.f, 1.f}; // Error. I want this.
Dual d2{1.f, {1.f, 1.f}}; // OK. I don't want this.
是否可以只使用一个构造函数?
所以这Dual d2{1.f, 1.f, 1.f};
也没关系。
也许像这样(无法编译):
struct Dual {
float v;
std::valarray<float> d;
Dual(float v, float d...): v(v), d({d...}) {}
};
Dual d0{1.f};
Dual d1{1.f, 1.f};
Dual d2{1.f, 1.f, 1.f}; // I want this.
我应该使用可变参数模板还是std::initilizer_list<>
?
以及如何使用?
解决方案
推荐阅读
- c++ - 使用函数指针前向声明作为 Lamba 声明
- c# - 无法连接/插入到远程 MongoDB (4.0/2.7) C# .NET Framework 4.6.1 (nor 4.6)
- python - 无法将 .xlsx 文件与 pandas 合并
- pandas - Pandas 可以在执行单元格时生成时间戳吗?
- android - 改造给出错误的数据
- html - ng-select 的焦点不起作用 Angular 5
- android - 在Android中的框外着色,同时保持框透明?
- ios - 如何正确配置 UITableView 自定义单元格
- postgresql - 计算几个卖家之间的最佳销售
- botframework - Bot Framework 发送 OPTIONS 消息