2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★