C/C++の要らない仕様
1 :デフォルトの名無しさん :2021/10/23(土) 23:44:31.52 ID:wRUe/Toi.net C/C++は増築に次ぐ増築でとても複雑になり過ぎましたが 要らない仕様を使用禁止にすることで もっとシンプルで使いやすくなるはず 皆さんそれぞれ色々考えがあると思いますが これさえ無ければというものを描いて逝け
8 :デフォルトの名無しさん :2021/10/27(水) 14:54:55.00 ID:vGh9mSrM.net coutとwcoutが別なオブジェクト
9 :デフォルトの名無しさん :2021/10/28(木) 06:27:44.11 ID:Ju3V11TA.net 環境構築って、ccコマンドはおニューのシステムに始めからあるだろ
10 :デフォルトの名無しさん :2021/10/28(木) 09:47:16.20 ID:fzg5+Gzi.net 参加してるプロジェクトによってC++のバージョンが違って面倒くさい
11 :デフォルトの名無しさん :2021/10/28(木) 20:21:02.70 ID:t5V0CZ4D.net stlのくせにいくつもあるよね
12 :デフォルトの名無しさん :2021/11/01(月) 09:27:38.58 ID:Iw+wFADq.net Cは構造体にキャストなんかできなくていい
13 :デフォルトの名無しさん :2021/11/01(月) 14:32:43.32 ID:Pe/toaIP.net Cの環境構築が荷が重いって・・ 80年代から時が止まってんのかよ?
14 :デフォルトの名無しさん :2021/11/01(月) 14:58:47.40 ID:Iw+wFADq.net K&R Cか、ナツカシス
15 :デフォルトの名無しさん :2021/11/08(月) 07:32:02.70 ID:IKRlrs1W.net C++は例外周りがクソ過ぎ C++11でマシにはなったが まだまだ全然不十分 あれじゃCのsetjmpにボロ負けだ
16 :デフォルトの名無しさん :2021/11/10(水) 09:19:08.76 ID:morNzhKw.net デストラクタの virtual 付け忘れは設計ミスだよな
17 :デフォルトの名無しさん :2021/11/10(水) 09:33:26.63 ID:N4yj32+g.net 基底指定子のpublicとか
18 :デフォルトの名無しさん :2021/11/12(金) 20:21:40.50 ID:r/GmrRcC.net >>16 vtblのコストを強要するのはどうかと思うぞ
19 :デフォルトの名無しさん :2021/11/13(土) 22:15:08.56 ID:TY5ABTi0.net ドン引きの客離れしそうだな
20 :デフォルトの名無しさん :2021/11/15(月) 10:34:01.74 ID:xJpmlO5M.net cはそんなに建て増してないだろう、建て増されたc++からシステムプログラミングに本当に必要な物だけ取捨選択してる atomicの保証されないc11以前のcはシステムプログラミング言語として欠陥品だった、あとはpodさえあればいい c2xはなんか雲行きが怪しいが…
21 :デフォルトの名無しさん :2021/11/16(火) 17:49:09.97 ID:ikMftiDM.net 暗黙のコピーコンストラクタはやめて欲しい 定義されてなかったらエラーの方が嬉しい
22 :デフォルトの名無しさん :2021/11/22(月) 05:23:12.83 ID:BgcNaRYw.net https://qiita.com/rinse_/items/1ac008fe3aea7c0887fc
23 :デフォルトの名無しさん :2021/11/22(月) 16:07:32.37 ID:KD4mgxy+.net >>21 [[notrivial]]かな、やるとしたら
24 :デフォルトの名無しさん :2021/11/23(火) 02:53:42.72 ID:2piYPS/1.net 型パンやめろ! ↓ ucharだぁ〜🤤
25 :デフォルトの名無しさん :2021/11/25(木) 03:58:54.44 ID:0166A/na.net Cは良い C++自体がいらない Linusは20世紀の頃からC++は駄目だと言ってた
26 :ハノン :2021/11/25(木) 04:14:23.56 ID:GVKW9hzJ.net >>25 例の GoF が嫌い、というかなんでも GoF でドヤる人が嫌いなだけかと… C で GoF をやる人は見たことがありません
27 :デフォルトの名無しさん :2021/11/25(木) 14:45:02.12 ID:Ts2h3uwp.net 何事も原理主義偏り杉はよろしくない
28 :デフォルトの名無しさん :2021/12/01(水) 07:18:21.69 ID:dzGTi3xH.net 他人を蹴散らし、頭脳オリンピックのチャンピオンを目指すような暴れん坊が、 自分にしかメンテできないコードをビルドに組み入れてドヤ顔するのに相応しい言語。 意図的に多重継承を数段重ねで使い、あの手この手で難読化も隙がない。 やがてプロジェクトのメンバーは、彼たった一人だけになった。独り勝ちして残ったのだ。
29 :デフォルトの名無しさん :2021/12/01(水) 07:26:22.72 ID:ercwC/VJ.net と、無能すぎて戦力外宣告され見る影もなく落ちこぼれた元PGが言う
30 :デフォルトの名無しさん :2021/12/01(水) 08:57:47.06 ID:dzGTi3xH.net 決め台詞乙 やはり戦士にピッタリな言語っすね。戦国時代のままでいてソフトウェア後進国なだけある。 戦うことが目的じゃない俺にはもう魅力を感じない言語だ。戦う事が好きな奴同士で競い合ってくれ。
31 :デフォルトの名無しさん :2021/12/01(水) 09:11:30.91 ID:/Bld0bvD.net Cだけでいい C++の機能は全部要らない
32 :デフォルトの名無しさん :2021/12/01(水) 09:56:20.11 ID:dzGTi3xH.net >>31 高級アセンブラにもなるCはそのままで、オブジェクト指向は他の良質な言語でいいって感じ。 登場時のC/C++はとにかく汚い仕様のプログラミング言語で、異種言語を一つ屋根の下で 同居させただけの、あれもこれも何でも許すマルチスタンダードな言語仕様だったな。 昔、現場でコーディング規約を強制すればPG辞めていくし、緩めれば呪文コードや数百行の関数を 当たり前の顔で書くし、日本語できないPG増えるし、テストしたら正常に動かねーしw など、 マネジメントの仕事を投げ出して逃げたかったんだぜ。メンタル強くなくなって後々逃げたけどw
33 :デフォルトの名無しさん :2021/12/01(水) 10:52:30.00 ID:t8eOzoR7.net どっかで聞きかじっただけの綺麗事の 原理主義者はそいつ自身は空っぽで使い物にならないから 実を取る選択をしたら同調者が多かったのがC それが気に入らねえやつは要するに排除対象なタイプってことだ
34 :デフォルトの名無しさん :2021/12/01(水) 10:58:22.38 ID:t8eOzoR7.net 他の良質な言語って何だろう まさかSmalltalkやJavaか?w
35 :デフォルトの名無しさん :2021/12/01(水) 12:35:49.82 ID:dzGTi3xH.net Object PascalやC#作ったあの人がC++の仕様決めをやってくれていれば・・・
36 :デフォルトの名無しさん :2021/12/01(水) 12:43:38.68 ID:ercwC/VJ.net Pascalからの離反組なのにか
37 :デフォルトの名無しさん :2021/12/01(水) 23:50:11.64 ID:dzGTi3xH.net Object Pascalか・・・ 変数オブジェクトの宣言時、型表記を後に付ける点がフランス語文法の形容詞は名詞の後に付けるみたいで UMLのクラス・オブジェクトの表記法とも相性良さそうだよな。 ただし、begin/endが野暮ったいとか面倒くさいと感じて毛嫌いする人も多いので、{ } 表記を取り入れれば良いのにな。
38 :デフォルトの名無しさん :2021/12/02(木) 09:46:45.45 ID:NxRkNBX1.net タイトルから書き始める語順が使いやすいことに フランス語は関係ない
39 :デフォルトの名無しさん :2021/12/24(金) 10:27:18.25 ID:NLox1fGs.net std::unordered_map<int, char> m; の宣言ならm[1]のかたちでKey指定すればValueを取得できるのに const std::unordered_map<int, char> m; の宣言だとm[1]がコンパイルエラーになるのは設計の敗北感ある
40 :デフォルトの名無しさん :2021/12/26(日) 06:30:32.85 ID:FmoRv+T4.net 特定の使い方だけを想定したみっともない関数だね ヘルパー関数なら他にいくらでも作りようがあるのに なんであんなゴミにしちまったのか理解に苦しむ
41 :デフォルトの名無しさん :2022/01/12(水) 15:33:50.20 ID:hptTX/Oy.net >>39 mapの[ ]演算子はキーに対応する値が存在しないときに追加する仕様なので、constの時にコンパイルエラーになるのは当然では?
42 :デフォルトの名無しさん :2022/02/01(火) 11:56:49.82 ID:Fe4SCtbl.net 参照しただけで値が代入される場合があるので当然 おとなしくfind使っとけ青二才
43 :デフォルトの名無しさん :2022/05/07(土) 00:59:07.42 ID:MO4OairX.net 構造体はC言語と同じ仕様のままであって欲しかった structにメソッド定義とか誰得なんだろう
44 :デフォルトの名無しさん :2022/05/09(月) 08:47:06.91 ID:WojLOIeb.net ドラフト段階ではclassは存在しなくてstaticを拡張したものだったのかもしれない そのうち継承やスコープの概念が取り込まれる際に分離されたが 互換性を保つため今に至ってるんじゃないかと
45 :デフォルトの名無しさん :2022/05/12(木) 15:28:18 ID:dpFYLwpR.net structと全く無関係な機能としてclassを作ってたら C使いの食い付きが悪くて今の地位には昇れなかったろうな C++以外のC系OOP言語がそうであるように
46 :デフォルトの名無しさん :2022/07/30(土) 16:24:14.46 ID:paa5jUiA.net inline float operator"" _\u03C0(unsigned long long times){ return 3.14159 * times; } float r = 2_π; こんなこと出来るんか あと戻り値の型を色々変えてもいける観たいだが 同名で戻り値違いって定義できんの?
47 :デフォルトの名無しさん :2022/08/02(火) 16:08:15.08 ID:0B/tKzE1.net 多重定義関数は仮引数の相違が必須 よって返却値のみの相違にはできない
48 :デフォルトの名無しさん :2022/08/03(水) 14:20:40.86 ID:cD9J94/o.net register て何に使えるの? 使ったことないんだが?
49 :デフォルトの名無しさん :2022/08/03(水) 16:24:13.98 ID:uE8hnDP8.net 最適化が単純な処理系向け 大昔だと意味はあった
50 :デフォルトの名無しさん :2022/08/03(水) 23:44:10.79 ID:cD9J94/o.net いらんよな
51 :デフォルトの名無しさん :2022/08/04(木) 02:23:22.99 ID:4HLZV6kX.net アセンブラ屋がCを始めたとき オンレジスタではなくオンメモリなことに ちょっとしたストレスを感じたもので デフォがautoなのが気になってregister指定しまくってた
52 :デフォルトの名無しさん :2022/08/16(火) 23:10:35.95 ID:MJ5t+Mpg.net バッファを指すポインタを貰って弄る時とか register *rpで受けてゴニョゴニョし、最後に引数のp=rpで返すとか 最初と最後ですり替えるだけなのであんまり認知不可は高くないし、渡されたpを触らないのでデバッグもしやすい&意図も明瞭でわかりやすい使い方かと
53 :デフォルトの名無しさん :2022/08/16(火) 23:17:34.02 ID:MJ5t+Mpg.net オリジナルを触らずローカル(auto)で受けても良いけど、この作業変数無駄じゃんと受け取られる可能性がある、c書きにはそういう最適化好きな奴多いしおさら 特にパフォーマンスで利点がなくとも、registerが付いてるだけで(プロファイリングされない限り)他人に弄られにくくなるw
54 :デフォルトの名無しさん :2022/12/03(土) 16:41:57.74 ID:A0vd1N2c.net ローカルクラスが静的データメンバを持てないのはなぜなのか。 静的関数メンバ内に静的ローカル変数を定義して、それを戻すことはできるのに。
55 :デフォルトの名無しさん :2023/03/14(火) 20:44:32.89 ID:RzXH33+P.net ローカルクラスはリンケージを持たないから 静的データメンバはリンケージが必要
56 :デフォルトの名無しさん :2023/03/17(金) 17:42:55.43 ID:Jukv8C3G.net これのこと? int main() { struct local_class { static int data; //NG }; } 診断メッセージに書いてあんじゃん d:\learn>g++ 54.cpp -std=c++2b 54.cpp: In function 'int main()': 54.cpp:5:25: error: local class 'struct main()::local_class' shall not have static data member 'int main()::local_class::data' [-fpermissive] 5 | static int data; | ^~~~ スコープに丸括弧なんか使えないんだから当たり前
57 :デフォルトの名無しさん :2023/03/17(金) 21:12:38.23 ID:axfbRcbR.net スコープとリンケージは少し違う概念 c++ の仕様書のno linkage を調べると no linkage The name can be referred to only from the scope it is in. Any of the following names declared at block scope have no linkage: variables that aren't explicitly declared extern (regardless of the static modifier); local classes and their member functions; ←ーーこれ other names declared at block scope such as typedefs, enumerations, and enumerators. Names not specified with external, module, (since C++20) or internal linkage also have no linkage, regardless of which scope they are declared in.
13 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者