< 返回版块

sstudioer 发表于 2021-03-10 11:07

参数可能是rc cell ...

解决了;

#define let auto
#define $new(class,...)   std::make_unique<class>(__VA_ARGS__)
#define $share(class,...) std::make_shared<class>( __VA_ARGS__)

class A{
public:
	string name;
	string age;
	A(){}
	A(string name, string age= "sdsd"):name(std::move(name)), age(std::move(age)){
	}
	template<typename A, typename B>
	void some(A &a, B &b){
		this->name  = a->name + b->name;
	}
};


int main(){
	let a = $new(A, "dsdf");
	let b = $new(A, "sdfsdf");
	let c = $new(A, "sdfsdf");
	let d = $share(A, "sdf");
        a->some(d, c);
	a->some(b, d);
	$ a->name;
}

评论区

写评论
Nalleyer 2021-03-11 11:51

好家伙,点进来看了半天发现是c++

AbdyCjen 2021-03-10 18:27

你这个代码改成rust把some改成泛型函数不就行了... 约束怎么写查下标准库就有

Neutron3529 2021-03-10 12:36

我也不会

但似乎应该试试derive

1 共 3 条评论, 1 页