新接手了一个项目,满屏的auto真不适应

iwannabe
I wanna be 08月31日 字数 21

这是cpp的今后常态吗?

24 个回复
here080
hero080 09月01日

很多人滥用auto

CPP对代码风格要求很高。

【 在 iwannabe (I wanna be) 的大作中提到: 】

: 标  题: 新接手了一个项目,满屏的auto真不适应

: 发信站: 水木社区 (Mon Aug 31 23:13:25 2020), 站内

: 这是cpp的今后常态吗?

: --

hyperLee
老李 09月01日

当然不是, auto 除了在复杂模板哪里用一下,其他的时候根本就不该用.

【 在 iwannabe (I wanna be) 的大作中提到: 】

: 这是cpp的今后常态吗?

lambdai
lambdai 09月01日

不太熟悉的代码auto出现多了是感到烦躁...

靠IDE吧

大的project应该把compile.json生成起来,用clangd索引好,然后祈祷IDE(vscode)和clangd可以集成得紧密一些

leslin
我心有约 09月01日

没有IDE的auto的确和无类型语言有一拼了

但没auto的话,c++也够烦的

【 在 lambdai 的大作中提到: 】

: 不太熟悉的代码auto出现多了是感到烦躁...

: 靠IDE吧

: 大的project应该把compile.json生成起来,用clangd索引好,然后祈祷IDE(vscode)和clangd可以集成得紧密一些

heidongstar
heidongstar 09月01日

当代c++都鼓励使用auto,IDE都可以推断出类型,不影响你阅读,写起来还简单了。话说现在也没拿记事本写c++的了吧

hgoldfish
老鱼 09月01日

C++ 的 auto 如果用不好,又是个巨坑。还不如不用。而且有的地方能用,有的地方不能用,脑子里面要记很多细节,影响写代码的流畅性。

这个语法糖跟 perl 的设计哲学差不多,纯粹为了让写代码的人写得爽,不考虑阅读代码的人会不会混乱。

某些人鼓励用 auto 可能是因为 boost 代码用了大量模板类型,把类型名搞得很长。不用 boost 就解决了。

【 在 heidongstar (heidongstar) 的大作中提到: 】

: 当代c++都鼓励使用auto,IDE都可以推断出类型,不影响你阅读,写起来还简单了。话说现在也没拿记事本写c++的了吧

here080
hero080 09月01日

你说的是滥用的情况。

不滥用的话auto很给力的。

【 在 hgoldfish (老鱼) 的大作中提到: 】

: 标  题: Re: 新接手了一个项目,满屏的auto真不适应

: 发信站: 水木社区 (Tue Sep  1 16:41:39 2020), 站内

: C++ 的 auto 如果用不好,又是个巨坑。还不如不用。而且有的地方能用,有的地方不能用,脑子里面要记很多细节,影响写代码的流畅性。

: 这个语法糖跟 perl 的设计哲学差不多,纯粹为了让写代码的人写得爽,不考虑阅读代码的人会不会混乱。

: 某些人鼓励用 auto 可能是因为 boost 代码用了大量模板类型,把类型名搞得很长。不用 boost 就解决了。

: 【 在 heidongstar (heidongstar) 的大作中提到: 】

: : 当代c++都鼓励使用auto,IDE都可以推断出类型,不影响你阅读,写起来还简单了。话说现在也没拿记事本写c++的了吧

: --

: 灭绝人性啊

here080
hero080 09月01日

这是邪道。

用IDE本质上还是在写代码。

读代码可以用网页,或者其它。不能假定有一个IDE来显示代码。

使用auto的原则很简单。用了比没用更好读。

有IDE所以敲类型一点也不麻烦。现在也没拿记事本写C++的了吧?

【 在 heidongstar (heidongstar) 的大作中提到: 】

: 标  题: Re: 新接手了一个项目,满屏的auto真不适应

: 发信站: 水木社区 (Tue Sep  1 16:12:52 2020), 站内

: 当代c++都鼓励使用auto,IDE都可以推断出类型,不影响你阅读,写起来还简单了。话说现在也没拿记事本写c++的了吧

: --

milksea
肥了,又肥了 >>>_<<< 09月01日

即使不考虑你说的情形也有不少适用auto的地方,比如

auto foo = make_unique<FOO>()

【 在 hgoldfish 的大作中提到: 】

: C++ 的 auto 如果用不好,又是个巨坑。还不如不用。而且有的地方能用,有的地方不能用,脑子里面要记很多细节,影响写代码的流畅性。

: 这个语法糖跟 perl 的设计哲学差不多,纯粹为了让写代码的人写得爽,不考虑阅读代码的人会不会混乱。

: ...................

here080
hero080 09月02日

还有lambda的参数

【 在 milksea (肥了,又肥了 >>>_<<<) 的大作中提到: 】

: 标  题: Re: 主题:新接手了一个项目,满屏的auto真不适应

: 发信站: 水木社区 (Tue Sep  1 20:00:17 2020), 站内

: 即使不考虑你说的情形也有不少适用auto的地方,比如

: auto foo = make_unique<FOO>()

: 【 在 hgoldfish 的大作中提到: 】

: : C++ 的 auto 如果用不好,又是个巨坑。还不如不用。而且有的地方能用,有的地方不能用,脑子里面要记很多细节,影响写代码的流畅性。

: :

: : 这个语法糖跟 perl 的设计哲学差不多,纯粹为了让写代码的人写得爽,不考虑阅读代码的人会不会混乱。

: : ...................

: --

allegro
静水流深 09月05日

我常年用auto,比如

const auto x = []() -> double

{

//....

}();

我比较反感用比如:

const auto x = 1;

【 在 iwannabe (I wanna be) 的大作中提到: 】

: 这是cpp的今后常态吗?

ds9
九变 09月05日

我看到有的代码是能用auto的地方绝对用auto,不让你一眼看出变量类型

我怀疑这些代码是自动从python翻译过来的

【 在 iwannabe (I wanna be) 的大作中提到: 】

: 这是cpp的今后常态吗?

littleSram
littleSram 09月05日

auto对大工程很不友好,尤其是多人合作

自己撸当然爽

【 在 iwannabe 的大作中提到: 】

: 这是cpp的今后常态吗?

beijing2duck
beijing2duck 09月05日

auto存在类型推导错误的隐患,不过在现代C++中是推荐使用的,仔细一些就是了。

god4
昵称 09月05日

auto真的是特别恶心,除非真的不需要考虑到数据类型

ble
ble 09月05日

一个简单的实践规则,如果能省字数但是不能省行数的,可以避免用。

发自「今日水木 on IN2010」

【 在 iwannabe 的大作中提到: 】

: 这是cpp的今后常态吗?

: --

yeahlow
难得糊涂 09月05日

c++11的语法糖

【 在 iwannabe 的大作中提到: 】

: 这是cpp的今后常态吗?

toutouqi
toutouqi 09月05日

我只在循环里用auto表示特别长的模板类型,觉得还比较方便,其他地方不用。

【 在 god4 的大作中提到: 】

: auto真的是特别恶心,除非真的不需要考虑到数据类型

god4
昵称 09月05日

嗯,你这场景还是很适合的

【 在 toutouqi 的大作中提到: 】

: 我只在循环里用auto表示特别长的模板类型,觉得还比较方便,其他地方不用。