avatar
被reference搞晕了# Programming - 葵花宝典
d*n
1
以下2种case,哪些对?
// use template for generality
case 1
T fn(T & in)
{
T &value = in; //two references point to one object (ok?)
// do something
return value; //is a reference returned?
}
case 2
T &fn(T & in)
{
T &value = in;
// do something
return value; //is a reference returned? what difference from the case 1?
}
My purpose: if class T is big, it's efficient to pass/return its reference.
The above 2 cases will do?
avatar
c*e
2
IMHO, both case 1 and 2 are correct c++ code.
for case 1 when the reference is returned, it is made into
a temporary object first, which is the semantic of return by value.
for all POD and user defined types, there must be a copy constructor
which takes a reference type and return (not really return, but contruction)
a object of that type. which is then returned to the caller.
so ur case 1 fn semantic is: (assuming do something instead of do nothing
in your fn definition)
change the object passe

【在 d*******n 的大作中提到】
: 以下2种case,哪些对?
: // use template for generality
: case 1
: T fn(T & in)
: {
: T &value = in; //two references point to one object (ok?)
: // do something
: return value; //is a reference returned?
: }
: case 2

avatar
c*e
3
IMHO, both case 1 and 2 are correct c++ code.
for case 1 when the reference is returned, it is made into
a temporary object first, which is the semantic of return by value.
for all POD and user defined types, there must be a copy constructor
which takes a reference type and return (not really return, but contruction)
a object of that type. which is then returned to the caller.
so ur case 1 fn semantic is: (assuming do something instead of do nothing
in your fn definition)
change the object passe

【在 d*******n 的大作中提到】
: 以下2种case,哪些对?
: // use template for generality
: case 1
: T fn(T & in)
: {
: T &value = in; //two references point to one object (ok?)
: // do something
: return value; //is a reference returned?
: }
: case 2

相关阅读
航线为何不能进行智能化管理?显卡内存不够,怎么办我老2017 的书单ML 最讨厌的就是搞了太多专业名词陆奇 在 CMU 博士后的导师是印度人 M. Satyanarayanan郭老师厉害硅谷的40岁危机:年过四旬在硅谷求职将不再顺利? 华尔街见闻 ugmbbc 1天3小时前 对于平均年龄只有二三十岁的互联网公司来说,大多数人可能还没有考虑过职业危机。但对大龄人士而言,就职互联网公司确实存在挑战。彭博最近的一篇文章讲述了硅谷的40岁危机,其中提到,年过四旬后你可能会发现自己在硅谷的求职过程中不再那么顺利。尽管美国劳动人口的年龄中位数是42岁,但是苹果的雇员年龄中位数只有31岁,谷歌和特斯拉是30岁,FaceBook和LinkedIn只有29岁。 年轻化所带来的结果就是,年龄稍长的人士如果想要在这些科技公司就职,可能不得不竭力适应上司比自己年龄小一轮的尴尬。上述文章称,想通过置换行头让自己看起来更年轻,这招现在在硅谷已经行不通了。他们可能必须做出更大的牺牲才能跟上同事的节奏,例如补上关于卡戴珊的最新八卦,看所有的最新超级英雄电影,花很长的时间研究那么最新的流行用语等等,更夸张的是通过整形来让自己更年轻。彭博: 当年逾50岁Rodriguez去面试时,她会选择颜色明亮的毛衣或者夹克搭配半身裙,而不是之前严肃的套装。她开始定期在Reddit、 Yelp,、IMDb和MSNBC上浏览资讯,在城市词典(Urban Dictionary)上查找她不认识的俚语,这样她就可以和其他人谈论那些超级英雄电影、金州勇士队还有卡戴珊。 她在LinkedIn上有500个联系人,她现在也开始使用Twitter、 Pinterest、 Snapchat和博客。一家名为Aruba的无线设备制造商的人事经理看到了她的博客,后来Rodriguez就成了这家公司的销售培训师。 另一个例子是美国圣何塞一位60岁的软件工程师,他今年1月被前东家解雇,他在那家芯片制造企业工作了7年。现在他穿着休闲装和运动鞋去公司面试,他在当地的培训学校学习嵌入式系统,并且把灰色的头发染成了深褐色,此外他还去割了眼袋,除掉黑眼圈。 他说,如果你还想继续在一个到处都是20多岁的年轻人的行业里工作,让自己看上去更年轻是一个聪明的选择。“我依然想在科技行业工作,因为我喜欢解决问题,而且我现在储蓄无法支撑退休后的生活。” 其中一些大龄员工选择了比较激烈的方式表达自己的需求。彭博报道指出,硅谷公司目前面临的年龄歧视诉讼超过了种族歧视和性别歧视: 并不是所有的大龄员工都保持沉默。从2008年到去年为止,硅谷150家大型科技公司共面临226起年龄歧视的诉讼,这是加州公平就业与住房部的数据,这样数字比种族歧视诉讼案高28%,比性别歧视案高9%。 一位惠普的前员工起诉称公司因为年龄原因解雇大量员工,原告表示正寻求代表40岁及以上的员工对惠普进行集体诉讼,明年谷歌也将面临类似诉讼,原告称谷歌在招聘过程中存在年龄偏见。 根据雇员薪酬与相关数据的提供商PayScale,美国科技公司的员工年龄中位数是32岁,不同企业差别较大(此为去年的数据,与最新的数字可能稍有差别): Facebook:28岁 谷歌、LinkedIn、Salesforce:29岁 eBay、Twitter、暴风雪娱乐:30岁 苹果、高通 :31岁 亚马孙、英伟达、雅虎:32岁 英特尔、Adobe、微软:33岁 思科、甲骨文、EMC:35岁 戴尔:36岁 IBM:37岁 惠普:40岁 活动入口: 买美股,上老虎哪个Java框架用作micro service比较轻量级?该怎么设计这个类?python 画图哪个库最好用?mark zuckerberg身边的中国小伙感觉运气很好啊Java里面能 extends Scala object的abstract inner class吗?Visual Studio 太大了,占我20G系统盘便携式投影仪开发软件现实不现实?请教Android 编程什么时候会自动产生代码,取代码工?神经网络识别多个目标识别石头剪刀布的model据说京东和xiaomi在用,要怎么才能做一个prototype呢?神经网络的解决方案把专业人士和二把刀人士的距离拉近
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。