X



C++は難しすぎ 難易度:4
■ このスレッドは過去ログ倉庫に格納されています
0486デフォルトの名無しさん
垢版 |
2014/04/01(火) 06:08:45.06ID:8KXd0J2G
その程度で人を周回遅れとか言う方が笑いものだろ
だいたい何が「いいよな、」なのか意味不明

面倒なライブラリを嫌がってた奴がいたから、ちょっと同意を見せただけで
まさか同レベルと思ってるんじゃないだろうな?
0487デフォルトの名無しさん
垢版 |
2014/04/06(日) 01:13:59.83ID:4D4+1Q1g
>>1

何を今さらw
0490デフォルトの名無しさん
垢版 |
2014/04/14(月) 22:10:41.75ID:vgwDadtz
typedefしまくり
0491デフォルトの名無しさん
垢版 |
2014/04/15(火) 01:53:04.12ID:hh7KqCRP
難しいのは当たり前
熟練者にとって生産性が上がるように進化してるが
理解しなければいけないことはどんどん増えている
0492デフォルトの名無しさん
垢版 |
2014/04/21(月) 00:38:33.35ID:fKV6ATCG
優先度が低く複雑度が高いものを導入して劣化していくコースに嵌り込んだのではないか
0495デフォルトの名無しさん
垢版 |
2014/04/23(水) 12:04:32.26ID:5izT4YJE
理解できなければ、使わないのが一番賢い選択。
0496デフォルトの名無しさん
垢版 |
2014/05/03(土) 09:54:30.44ID:BYcmF+is
C++って、コンパイラ・コンパイラ・コンパイラだから
0497デフォルトの名無しさん
垢版 |
2014/07/04(金) 21:07:35.33ID:8xYB6zEg
テンプレートと例外が便利
0499デフォルトの名無しさん
垢版 |
2014/07/04(金) 22:38:57.69ID:XgPM3bh0
他の言語はあれは駄目これは駄目って感じで窮屈。C++は自由!
あれを忘れてた、これを忘れてたって事になるけど
0500デフォルトの名無しさん
垢版 |
2014/07/05(土) 01:09:11.89ID:ppQutXuj
テンプレート大好き
例外はなんか嫌い
0501デフォルトの名無しさん
垢版 |
2014/07/05(土) 22:43:38.37ID:FweWc6DI
>>500
テンプレートも例外も大好きだ・・・
なんでも例外投げる
コードがとてもシンプルになってグッドです

最終的に誰がcatchするんかは知らんけど、
少なくともデバッグの役には立ってる
もはやコレなしには生きられない
0502デフォルトの名無しさん
垢版 |
2014/07/06(日) 00:52:21.93ID:l5kZ35EX
>>501
たまにコードがググっとスッキリする時は使うんだけどねえ
gotoと同じくらいの頻度だわ
0503デフォルトの名無しさん
垢版 |
2014/07/06(日) 06:11:42.39ID:qu0eEdBG
ハゲしねwwwwww
0506デフォルトの名無しさん
垢版 |
2014/07/06(日) 22:51:15.28ID:M2Rbqlfg
>>504
コンパイラについてるソース見てみよう
pairなんて、ただ2個のメンバに入れてるだけ
しかもムーブ付き

忙しいときにmakeとかしちゃって良いんだろか?
って思ってたけど、わりと単純な仕様で低コスト
0509デフォルトの名無しさん
垢版 |
2014/07/08(火) 21:24:51.41ID:MtYT4b2f
>>508
最低限、これは知っとかなきゃダメでしょう
っての以外は、必要に応じてだと思う

Cと共通するような部分、基本的な言語仕様、昔ながらのポリモーフィズムって感じな
やり方に加え、少しばかりテンプレートに慣れ親み、それとの違いを認識し、それに
加えて右辺値参照、ムーブセマンティクス(これらは必須)を抑えとけば、とりあえずは
十分だと思う

あとは必要になってから、その都度学習する
最初から全部とか無理
0510デフォルトの名無しさん
垢版 |
2014/07/10(木) 18:18:37.91ID:j+7QqkUb
面倒な技術を使う場合、大抵出来る人がラッパ組んで他の人はそれ使うだけじゃない?
0511デフォルトの名無しさん
垢版 |
2014/07/19(土) 12:59:25.98ID:SGJuvk0q
今はJavaもC#もテンプレート&関数オブジェクト全盛だし
相対的に難易度は減ってると思うんだけどな

今メジャーな言語でC++固有の難しい所ってvirtual継承とムーブぐらいじゃね
細かく見ればunionとかplacement newとか色々あるだろうけどさ
0512デフォルトの名無しさん
垢版 |
2014/07/23(水) 18:23:16.07ID:dzmo+Zlb
c++の凝ったコードを見てると上には上がいるんだなーと思わせてくれる
しかしdefineが使いまくられているコードは読む気が失せる
0515デフォルトの名無しさん
垢版 |
2014/08/27(水) 22:01:04.37ID:+mS2YVhy
ってかいろんなパラダイムが共存しすぎ
0516デフォルトの名無しさん
垢版 |
2014/08/27(水) 22:42:18.69ID:qWxL76Rg
GUI専門言語とか計算専門言語とか通信とかデバイスとかオブジェクトライブラリの標準化で楽になろうよ

…でも専門に作ったはずが何でもやるようになるのもよくある話
0517デフォルトの名無しさん
垢版 |
2014/08/30(土) 01:29:57.79ID:34Ix6eHx
>>516
もうどっかの標準規格団体がビシッと決めてくれないかね?
0518デフォルトの名無しさん
垢版 |
2014/08/30(土) 01:45:40.72ID:ZWIpt6n5
標準から外れた新しいハードを作ろうとする連中をビシッと排除することが大事
0521デフォルトの名無しさん
垢版 |
2015/05/18(月) 23:46:56.71ID:gkwtVc+R
初心者会の動画を見てわかったこと
C++は初心者レベルになる事すら難しすぎ
0523デフォルトの名無しさん
垢版 |
2015/10/21(水) 19:29:55.95ID:Hse4sQ9w
まあ最新の書き方の使い方を広めるために
プログラムの仕事はしませんとか言い出す馬鹿がいるような言語だからな。
c++ がいかにそういう馬鹿であふれてるか表す良い例だと思われる。
0524デフォルトの名無しさん
垢版 |
2015/10/27(火) 11:45:35.59ID:Vhrm1X6v
C++は使う機能だけ学べば使えるようだけど
高度な機能を使ったソースを読み下して学習が捗らない
古いCのソースなら何とか読み下せるけど
C++恐ろしい子
0528デフォルトの名無しさん
垢版 |
2015/11/06(金) 12:26:11.93ID:lxCcN5+p
スタティックなメンバ関数からインスタンスへのリファレンスをstd::make_sharedで作ろうとしたら
プライベートコンストラクタが呼べねぇって怒られた
暫く「は?」ってなった

仕方なくfriend struct __gnu_cxx::new_allocator;したらMacでビルドが通らなくなる事案が発生。
最後にはもう何もかも面倒くさくなってpublic:したけど
今ググったら継承させたクラスを関数内に作ってup-castする方法が出てきたわ。
引数無くて良いならこれでも良いんだけどね・・・。
0530デフォルトの名無しさん
垢版 |
2016/08/06(土) 20:41:49.93ID:pMfVQ70e
C++は入門書すら難しすぎ

Bjarne Stroustrupのプログラミング入門書の査読の感想
ttps://cpplover.blogspot.jp/2016/08/bjarne-stroustrup.html
0531デフォルトの名無しさん
垢版 |
2016/08/08(月) 12:37:05.42ID:BeKKpTjc
>>530
紹介されたページを読んでみたが、C++の入門書じゃなくて
プログラミングの入門書で使用言語がC++って本みたいだね。
あと、内容が難しいんじゃなくて、内容が酷いという意見。

これから訳書を売り出そうってのに原書をボロクソに貶すとは
思い切った人だわ。それだけに信憑性も感じるけど。
0532デフォルトの名無しさん
垢版 |
2016/08/24(水) 05:03:05.06ID:kLo7lknt
「内部コンパイラエラー(ICE)に関するものなど深刻なものを含む110以上のバグが修正されている」

GNU Project、バグを修正した「GCC 6.2」リリース | OSDN Magazine
https://osdn.jp/magazine/16/08/23/160000
0533デフォルトの名無しさん
垢版 |
2016/08/24(水) 14:06:06.97ID:SRgitPqt
よく知らないけどテンプレート機能ってマクロみたいなものだよね
マクロを読んで理解したりマクロで展開されたコードを読み下すのって地獄ちがう?
LISPの同期しながらネット上でやり取りするコードもマクロを使っていて
生成されたコードがボリュームテンコ盛りかつなにやっているのか意味不明な難易度だゲンナリすると言う
理解できないー学習に剥かないー当然不具合の発見も困難な感じ
0535デフォルトの名無しさん
垢版 |
2016/08/24(水) 20:07:44.67ID:971rg3P3
マクロ地獄から抜け出せたと思ったらテンプレート地獄に堕ちた、みたいな。
0537デフォルトの名無しさん
垢版 |
2016/08/25(木) 20:39:39.05ID:FbCqAy9f
Cよりは簡単だと思うけどな
Cはいちいち「そんなのわかりきってるだろ」みたいなことまでつらつら書かないといけないのに
C++は簡明に書けるし

学生時代にCのレポート書いてるときにめんどくさくなって、楽だからって勝手にC++で書いてたら、しばらく担当教が授気づかなかったな
すっかりCの仕様忘れてしまった。
CよりC++の方がずっとわかりやすくない?
0543デフォルトの名無しさん
垢版 |
2017/06/15(木) 02:07:46.28ID:Y+hk0umY
C++難し過ぎ、クロワロタwww
0545デフォルトの名無しさん
垢版 |
2017/06/17(土) 07:21:17.73ID:bupTq8cx
自分で書ける程度にはなったが
読める程度には至らない。
知らない機能、文法が多すぎる。
入出力イテレータなんて使った試しがない。
STL難しすぎ。
0546デフォルトの名無しさん
垢版 |
2017/06/18(日) 17:02:19.35ID:kFt5QPYj
C++ほど機能が煩雑な言語って他にあるのか?
テンプレートやスマートポインタのような基本的機能もそうだが、
戻り値の型に依存した例外処理、引数の参照渡し、new()との相性の悪い*なしクラス型など、
後発の言語が採用しなかった一貫性の無い仕様や、
#defineマクロ、グローバルstaticやヘッダとソースの分離などの70年代の因習をそのまま残しており、
しかもC時代に由来するmalloc/free、typedef struct、グローバル関数などをそのまま使う人が多い。
標準ライブラリにもstdio/iostreamのような重複が全体に生じている。
それに加え、ラムダ式やジェネリック、右辺値参照、constexprなどの機能拡張も進んでいる。
STLやBoostなどのライブラリも加えればきりがない。

そのくせまともなガベージコレクションはない。

実際のプログラミングではコーディング規約で一貫したルールを定め、余計な機能は使わないようにするのが普通だが、
やはり現代的な言語に比べるとずいぶん使いづらい。組み込み用途、DLLやドライバの開発以外では用いるべきではないのかも。
0547デフォルトの名無しさん
垢版 |
2017/06/19(月) 09:01:31.33ID:57UCTkEh
スマホでマイクラがサクサク動くような時代にGC積んでない言語って正直厳しいと思うの…
それに組み込み系でも別にc++なんて使わなくてもcで足りるし
でもGCを積んだら積んだでc++の存在意義が薄くなるしそれなら他選ぶよってなるわ
objective-cとswiftみたいに代替言語でてくるかもしれんし(使った事無いけど)

結局所詮道具なんだからシンプルで扱いやすいほうがいいに決まってるんだよなー
c++erの行き着く先はスパゲッティ職人っすかね
0550デフォルトの名無しさん
垢版 |
2017/06/22(木) 19:39:45.52ID:7u4/pAoZ
objective-cは{}じゃなくて@を強制されてひたすら読みづらいし構文がクソきもいけど
そこらへんをc++かjavaに近づけて
appleじゃなくてWindows(とLinux)が採用してればobjective-c使ってたわ
どうしてもCocoaかiOS周りにしか使えないからクソなんだよなぁ
まあそれでもcのライブラリが潤沢だから使おうと思えば使えるけど
言語自体はシンプルだから、実質apple専用ってのが残念だわ
一応WinObj-CがあったりGNUstepがあるのはしってるけどmacosと同等につかえるわけじゃなし
swift完全移項して空気になってしまうなら悲しいなー
0553デフォルトの名無しさん
垢版 |
2017/06/22(木) 23:45:54.09ID:gcsIExTi
>>548
そういうとこにすら表れてるよな
物事を複雑にして喜んでるようなスジの悪さが

あんなクソみたいな表記のラムダ式持ち込んで一体何がしたいんや(笑)
右辺値参照(笑)ムーブコンストラクタ(笑)型推論(笑)
0554デフォルトの名無しさん
垢版 |
2017/06/23(金) 12:36:51.76ID:c5kaeG1z
>>553
それみんなコードが簡潔になる機能じゃん。
0555デフォルトの名無しさん
垢版 |
2017/06/23(金) 13:15:22.43ID:jGFBZEPI
548 :デフォルトの名無しさん [sage] :2017/06/19(月) 09:36:34.36 ID:S/5ZPkdK
C/C++ は低級が売り
これ以上複雑にしなくていい
0556デフォルトの名無しさん
垢版 |
2017/06/23(金) 22:17:29.36ID:c5kaeG1z
仕様が複雑だから理解できない、っていうのをdisる理由にされてもな。

コードが簡潔になる事が重要。
0557デフォルトの名無しさん
垢版 |
2017/06/23(金) 22:25:44.82ID:cLuj8vNR
コードが簡潔になることを最重要項目としてほしくない、CやC++の役目はそうじゃない
という主張

アセンブラとの親和性、非常に低レベルな環境への対応、命令レベルの速度チューニング、...
そういう低級言語としての役目が重要であると
0558 ◆QZaw55cn4c
垢版 |
2017/06/23(金) 22:28:41.68ID:Byf7wydn
>>557
C++ の時点で「アセンブラとの親和性」とかあり得ないんだが‥
0559デフォルトの名無しさん
垢版 |
2017/06/23(金) 22:28:43.81ID:cLuj8vNR
メジャーなコンパイラですら規格に対応しきれてないのにさらに仕様を増やすとか、規格自体が目的になってる感じで

私自信は規格書も読んだり、積極的に新規格についていってるつもり
0565デフォルトの名無しさん
垢版 |
2017/06/24(土) 00:41:11.56ID:wjJzkkq0
別に低レベル性を犠牲にしているわけでは無いのだからデメリットは無いでしょ
機能追加で便利になってるのに、何が複雑なのかわからん
仕様が理解できないって意味で複雑って言う主張なら、使うなとしか
0566デフォルトの名無しさん
垢版 |
2017/06/24(土) 02:15:35.31ID:FTGF6KR2
c++至上主義者達は難解なパズルを解いてエレガントにプログラムすることが全てで
可読性とかそういう他人のこと考えてないとこないですかね・・・?
追加する仕様の方向性もまさにこういうとこが見受けられるから文句も言いたくもなるわ〜
別にc++つかっててもできるだけシンプルに見やすいようコーディングしてる人は好きよー
0567デフォルトの名無しさん
垢版 |
2017/06/24(土) 02:19:00.84ID:P6Ag4g+S
C++は最強
0568デフォルトの名無しさん
垢版 |
2017/06/24(土) 02:35:03.02ID:FTGF6KR2
C++はF1マシンみたいなもん
ちょっと近所に買い物するのにわざわざF1マシン乗りたくないし
しかもC++は速いけど脆いマクラーレンかな?
pythonとかjavaが人気なのは
上質なリクライニングシートにクーラーとカーナビもついてるからなんだよなぁ
0569デフォルトの名無しさん
垢版 |
2017/06/24(土) 05:34:56.06ID:58dIWtvr
プログラムは、小さくて速いのがいい。エレガント、可読性なんて二の次だ
0571デフォルトの名無しさん
垢版 |
2017/06/24(土) 10:48:03.15ID:5iili0Vp
> 機能追加で便利になってるのに、何が複雑なのかわからん

そういう感覚なんだろうなw
何が複雑かのセンスがそーいう状態なんよ
俺が何を言ってるかも、多分分からんやろな
0572デフォルトの名無しさん
垢版 |
2017/06/24(土) 11:00:01.28ID:0iPve436
C++の書籍って、浅い入門書か、すでに使いこなしてる人向けの高度な本の両極端なイメージ
0573デフォルトの名無しさん
垢版 |
2017/06/24(土) 11:12:32.10ID:5HRkzvGx
やはり、コードの字面から動作を予測しやすいというのがわかりやすいプログラムなんだと思う。
そういう意味で、テンプレート、オーバーロード、SFINAE、ADLなんかを駆使してドヤッてるC++プログラムは
マクロ使いまくりのLispやCなみにわかりにくい。
0575デフォルトの名無しさん
垢版 |
2017/06/24(土) 17:42:49.03ID:2UgIHN8U
複雑と思うなら、その機能を使わなければいいだけでしょ
低レベルさに加えて、流行りの高級機能も使えるという、「選択権」があるのがC++の良いところなんだから

自分の理解不能な機能を見て、ドヤってると感じるのは劣等感じゃね?
もちろん、普通に関数作れば良いところでlambda使って無駄に読みにくくしてる人がいると言う事実には同意する
0576デフォルトの名無しさん
垢版 |
2017/06/24(土) 18:13:25.45ID:5HRkzvGx
例えばマクロを多用したプログラムが理解しにくいというのと、マクロの機能を理解しているかどうかってのは別の話。
言語機能自体を理解していたとしても、わかりにくいプログラムはわかりにくい。
>>573にlambdaを挙げなかったのは、lambdaはそういう意味での分かりにくさは比較的少ないから。
0578デフォルトの名無しさん
垢版 |
2017/06/24(土) 18:37:46.40ID:23EMNP9J
無理に使わなくてもいいというのは同意だけど
例えばメンバとして持つものにstd::tupleなど、ムーブをサポートしているクラスを想定して
ムーブコンストラクタ、ムーブ代入演算子など定義するけど
「それ以外ほぼ何もしない」クラス作ってドヤってる人(サンプルコードの話ではない)は最近よく見かけるんだよなぁ・・・w

セオリーや流行ばかり追いかけて実用性皆無なコードしか書けない趣味グラマ?ばかりが
最近C++界隈で目立っている気はする。

ある程度なんでも出来るようになれば言語のことはどうでもいいから、
結果そういうのばかりが目立ってるのかもしれんけど
0579デフォルトの名無しさん
垢版 |
2017/06/24(土) 18:40:43.39ID:GiFMFqzr
>>576
具体的に言うと、どの言語がわかりやすいの?
煽ってる訳ではなく、純粋に意見が聞きたいだけよん。
0580デフォルトの名無しさん
垢版 |
2017/06/24(土) 19:03:23.75ID:5HRkzvGx
絶対的な順位というのは決められないだろうけど、少なくともCはC++より分かりやすいよな。

a = b + c;

こんなコード片があるとき、Cならここで数値かポインタの加算が行われると推測できるし、あとは
オーバーフローの可能性を気にする程度でいいけど(マクロが使われていた場合は別として)、
C++だと選択肢が多すぎて判断が難しい。下手したらコード全体を隅から隅まで調べないと実際の
動作を把握できないかもしれない。
0581デフォルトの名無しさん
垢版 |
2017/06/24(土) 19:07:55.94ID:VreQ5HUD
書きやすいと読みやすいは別物で
C++はC以上に書きやすさを求めた結果
読み手に優しくないコードが書けるようになったのは事実だよね

精通すればスラスラ読めるようになるってんならまだしも
単なる独りよがりなコードも書けるから手に負えない
0582デフォルトの名無しさん
垢版 |
2017/06/24(土) 19:38:18.99ID:GiFMFqzr
>>580
ああそういう事ね。
確かにわかる。

まあ、その点だけで言うと、その operator を提供しているクラスを信じられるかどうかって点に行き着く気がするけどね。
プラスの意味論 (セマンティクス) に逆らう機能を実装するような、質の悪い設計なのかって言う点から、実際ちゃんと動くのかって点ね。

セマンティクスに逆らわない機能で、単体テストされていれば、基本的に疑いの眼差しを向ける必要はないはず。(カプセル化)
0583デフォルトの名無しさん
垢版 |
2017/06/24(土) 19:41:21.76ID:GiFMFqzr
>>581
ああー、同意。
うまく使えば読みやすいのに、慣れない人が使うと酷いことに。

なるほどー、わかってきた気がする。
あまりにも簡単に無意味に複雑なコードが書けてしまうことが問題なのか。
0585デフォルトの名無しさん
垢版 |
2017/06/25(日) 12:05:23.88ID:crK74dJZ
違う。書いた本人以外に合わせるんだよ。
あんたのコードを周りの人が理解できないのはあんた以外全員バカだからというわけじゃない。
■ このスレッドは過去ログ倉庫に格納されています