TarsCpp icon indicating copy to clipboard operation
TarsCpp copied to clipboard

ServantHandle&async_callback支持右值引用参数

Open BeyondWUXF opened this issue 1 year ago • 10 comments

struct、vetcor、map等支持右值引用参数,减少不必要的拷贝

BeyondWUXF avatar Sep 02 '22 10:09 BeyondWUXF

这种不要用参数来区分, 直接多生成一个函数会不会更简单?

ruanshudong avatar Sep 20 '22 01:09 ruanshudong

你是指生两个函数,一个是const引用的参数,另一个是右值引用的参数?

BeyondWUXF avatar Sep 20 '22 08:09 BeyondWUXF

对, 不行么?

ruanshudong avatar Sep 20 '22 08:09 ruanshudong

生成两个的话调用函数里就不好判断需要调用const&的函数还是&&的函数,所以我的想法是在生成文件的时候就直接明确我想要const&还是&&

BeyondWUXF avatar Sep 20 '22 08:09 BeyondWUXF

用参数指定这种做法其实很难推广, 你有生成的具体例子没有 , 写代码验证一下编译啥情况?

ruanshudong avatar Sep 20 '22 08:09 ruanshudong

我用自己的项目试了下编译是正常的,不过我只在centOs下编译。

BeyondWUXF avatar Sep 20 '22 08:09 BeyondWUXF

image 按你说的如果是两个函数,像这个地方怎么判断处理

BeyondWUXF avatar Sep 20 '22 08:09 BeyondWUXF

可以考虑调用&&的方法, &&这个函数里面, 转一下调用const &的, 如果继承了&&, 就直接处理了, 继承了const &也没错? 这样也能兼容老版本?

ruanshudong avatar Sep 20 '22 08:09 ruanshudong

这个可以,我有空再改改

BeyondWUXF avatar Sep 20 '22 08:09 BeyondWUXF

参数有非基础类型的时候生成重载一个右值引用的函数

BeyondWUXF avatar Sep 22 '22 10:09 BeyondWUXF