【发布时间】:2015-11-03 01:47:28
【问题描述】:
对于作业,我必须按照一些明确的说明编写矩阵类。其中一条指令是重载
m << 1,2,3,4,5,6;
我尝试查看带有可变参数的函数,但后来我发现我无法使用可变数量的参数重载运算符。
我尝试使用来自cpp reference 的一些参考代码查看 std::initializer_list
std::vector<float> mat;
Mat<M,N>& operator<<(std::initializer_list<float> l)
{
this->mat.insert(this->mat.begin(),l.begin(),l.end());
return *this;
}
所以我的问题是,我可以使用什么类/类型的参数来实现这一点,我想到的选项不起作用,或者我没有正确使用它们。
非常感谢。
编辑: 在@bames53 给出很好的回答后,我尝试合并,效果很好!
【问题讨论】:
-
对于学校班级来说,这是一项复杂的作业。无论如何,查找“运算符重载代理类型逗号”并玩得开心:)
-
谢谢我试着调查一下,我没有找到太多关于重载逗号的信息:s 不幸的是
-
您只查找了五分钟,但 Google 为我为您提供的搜索字词提供了“大约 218,000 个结果”。花点时间研究一下。
标签: c++ c++11 operator-overloading parameter-passing