- 主题:现在编译器优化
string传个值怎么了?你写个常引用,人家传个literal不照样内存分配和拷贝?
传入字符串的地方,你可以统计一下,八成这地方被传入了文本字符串。
而且string传值这事情根本不是个事了,不缺那点性能。
【 在 z16166 的大作中提到: 】
:
: 不能吧,C++是信任码农
:
: 我这有个工程里满是新手写的std::string传值,头大。给他指出来吧,说多了还容易得罪人,还不改,哈哈
#发自zSMTH@么么哒
--
FROM 223.104.41.*
qt里边全是下划线和驼峰混用的。
【 在 z16166 的大作中提到: 】
:
: 人跟人不同。有的人比较固执,就要搞自己的那套,另外一个原因是对c++特性不熟,不敢用。
:
: 我昨天在群里说了同一个变量的命名不要混用下划线和驼峰,人根本就不回复我,哈哈
:
#发自zSMTH@么么哒
--
FROM 223.104.41.*
你写的是c++耶
这还理直气壮了
看来你经常这么干
另外,我说的是这种:
void Foo(string s);
void Bar(Json::Value v);
你要是到处都是这种函数参数定义,你看看你项目组里写c++的人鄙视你不
我猜测了一下,这哥们习惯这么写,大概是因为他是c#码农转来写c++的
因为他给每个string都要初始化为""。
【 在 xieyf 的大作中提到: 】
: string传个值怎么了?你写个常引用,人家传个literal不照样内存分配和拷贝?
: 传入字符串的地方,你可以统计一下,八成这地方被传入了文本字符串。
: 而且string传值这事情根本不是个事了,不缺那点性能。
: ...................
--
修改:z16166 FROM 221.218.161.*
FROM 221.218.161.*
问题是这个项目里的别人都没这么写
【 在 xieyf 的大作中提到: 】
: qt里边全是下划线和驼峰混用的。
:
: #发自zSMTH@么么哒
--
FROM 221.218.161.*
error: no viable conversion from 'std::string_view' (aka 'basic_string_view<char>') to 'std::string' (aka 'basic_string<char>')
[build] std::string ss = sv;
[build] ^ ~~
[build] /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/string:845:33: note: candidate constructor not viable: no known conversion from 'std::string_view' (aka 'basic_string_view<char>') to 'const string &' for 1st argument
[build] _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(const basic_string& __str);
[build] ^
试了试,报错了啊
clang可以,有Wconversion
【 在 speedboy2998 的大作中提到: 】
: 这玩意儿最大的坑在于
: std::string_view sv;
: std::string ss = sv;
: ...................
--
修改:gfkid FROM 114.249.22.*
FROM 114.249.22.*
啊,我的 VS2022 和 GCC 13 都没报错
【 在 gfkid 的大作中提到: 】
: error: no viable conversion from 'std::string_view' (aka 'basic_string_view<char>') to 'std::string' (aka 'basic_string<char>')
: [build] std::string ss = sv;
: [build] ^ ~~
: ...................
--
FROM 218.76.62.*
有时候是不由自己的,一些函数内部的临时变量,我就经常
sigAmount_total
sigAmount_last
sigPnl_summary
就是后缀加个下划线,表明在原变量 衍生要做的业务意义的变量字段
【 在 z16166 的大作中提到: 】
: 人跟人不同。有的人比较固执,就要搞自己的那套,另外一个原因是对c++特性不熟,不敢用。
: 我昨天在群里说了同一个变量的命名不要混用下划线和驼峰,人根本就不回复我,哈哈
:
--
FROM 14.154.31.*
我用的clang17
总要有点lint特色吧,不然怎么和gcc竞争
【 在 speedboy2998 的大作中提到: 】
: 啊,我的 VS2022 和 GCC 13 都没报错
:
--
修改:gfkid FROM 114.249.22.*
FROM 114.249.22.*
那不是理由,因为用sigAmountTotal是一样的呀,哈哈
【 在 Algoquant 的大作中提到: 】
: 有时候是不由自己的,一些函数内部的临时变量,我就经常
: sigAmount_total
: sigAmount_last
: ...................
--
FROM 221.218.161.*
支持你,字符串传值还是引用真没多大区别。当然极端场景除外。
现在有一个Qt项目,在单核arm上跑。里面大量的qstring传值。我试着修改了一些,发现没有啥提升,就不管了。
string 传值基本上已经快成为共识了。
【 在 xieyf 的大作中提到: 】
: string传个值怎么了?你写个常引用,人家传个literal不照样内存分配和拷贝?
:
: 传入字符串的地方,你可以统计一下,八成这地方被传入了文本字符串。
: ...................
--来自微水木3.5.10
--
FROM 39.144.106.*