C++实现参数in、out、ref语义

stl是一个好东西,但是一直唯一一点不爽的就是长长const std::string&,const std::vector<int>&的函数参数。

void test(const std::string& str, std::vector<int>& vec, std::vector<int>& outvec)
{
    // TODO ...
    // Do something...
}

这上面就是一个典型的函数声明,不仅写起来累,看起来也累。

你说不用const&行不行呢,其实也不是不行。

但用c++一般都会有极限优化的心态作祟,再说了用值传递肯定会被一邦人鄙视的!!

那少写的const行不行呢,速度一样了,就多写了&而已。

是,速度是达到了,但这个函数调用起来总是让不放心呀,万一你给我改了咋整呀!!

唉,到底发明c++的人是咋想的呢??


自从我知道c#的写法,我一直想把c#的ref、in、out的语义引入到c++里面。

虽然一直觉得c#一般般,c++才是亲儿子,但从语法上,书写上,真的甩c++几条街。

比如下面这段代码

public void Test(in string str, ref Array<int> array, out List<int> list)
{
   
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值