ToDo:
https://pineapple.blog/c-20-2f22bc481046
via https://twitter.com/yusk_/status/1340119734986018816
僕も普通に書けばいいんだよ、凝ったことしすぎんな派だと思う。最新の言語機能を学ぶことや新しい言語を学ぶとかもあまり興味が持てなくなってて、昔の自分とかはなんだコイツ、て思うかもしれないけど、他にもっと興味が移ってるだけなんで許して欲しい
なんだけど、新しい言語機能覚えよう、使ってみよう、みたいな気持ちは割と自分を育ててくれたものだと思ってるので、なんかある程度は大切にしたいな……という気持ちがある
仕事だと自分は古いぽいコードを書きつつ、他の人の書いたコードで、オッこんなことできるのか、みたいなのを真似たりしてる。なんかちょっと前、つねづね使ってやりたいな……と思ってたユーザ定義リテラルを使ってみたりもした
今は、グーグルと違ってあまり強いコーディング規約が無くて、割とみんなが自分の書きたいように書いてる。あまりスタイルとかで他の人に過干渉もしない感じ、というかそんなことやってる時間がない。でも、人数も多いわけでもなく、みんななんとなく空気を読みあってるからそこまで inconsistent にはなってない、くらいになってて、割と心地良いように感じてる。スタイルが場所や時期によってかなり一貫性がないので、こういうのが苦手な人はウッとなる気がする。でも、画一性高めすぎると新しい書き方に触れる機会も減る気もするし
具体的な内容見てくと、僕は現段階では std::iota(1, 10) | reverse までは良くなったと感じる派だな、と思った。 for (int i = 0; i < 10; ++i) は単純に i が複数回出てくるのが単純にメンテ性落としてると思ってる。ところで reverse に std:: いらないのは ADL だよね。良いな、と思う反面、 my_project::MyRange(1, 10) | reverse がコンパイルエラーになって苦しむ初学者があらわれるんだろうなあ、と悲しい気持ちにもなるやつだ
filter からは微妙。この規模なら全然 OK だけど、 condition がもちょい複雑になってくると普通に書いた方が良いやろなあ、という気分。読みにくくなってる、ていうと老害オツかもしれないんだけど、たぶんコンパイルエラーがわかりにくくなることと、ロジックがより複雑になった時にデバッグがしづらいというのがあって。書き心地より読み心地とデバッグしやすさを重視した方が良くて、デバッグしやすさは printf 入れやすいとか、 gdb でちゃんと追えるとか考えた方が良いと思っている。デバッガとかはなんかやっぱ言語とセットだと思うので、良い言語機能でもデバッグがしづらくなるのは導入をためらった方が良いかなあ、と
なんか最近常に同じ話しかしてない気がするけど、 C++ は、いいかげんデバッガとかバックトレースとかDLLにマジメに取り組んで欲しくてですね。。
最後に、どうでもいいけど、 C++ の std::iota て step 指定できないの……?
(21:43)
前 | 2020年 12月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
いつもboost::counting_rangeみたいなのを自前で作っていたのだけど、iotaなんてあったのか、と思って見るとC++14の範囲ではcounting_range的に使うのは難しそうですな…
昔の iota は何考えて API が便利だと思ったんだろう……系の何かですよねえ