关于initializer_list
  • 板块灌水区
  • 楼主poly
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/7 17:29
  • 上次更新2023/10/24 05:16:32
查看原帖
关于initializer_list
910332
poly楼主2023/1/7 17:29

众所周知,大括号初始化给数组赋值只能在初始化的时候用。
然而给数组赋值大量常量的时候必须手动去赋值。
所以我试图去重载运算符:

template<typename TP>
TP& operator=(TP *x,initializer_list<TP>ilist){
	auto rt=x;
	for(auto it=ilist.begin();it!=ilist.end();it++)  x=*it;
	return x;
}

然而发现编译报错 must be a nonstatic member function
据查是等号运算符需要重载在定义函数之内的。
然而我记得之前看到过类似的问题,但是用了不知道什么方法确实重载到函数之外了。
希望能提供那种方法,或者给出更好的实现

2023/1/7 17:29
加载中...