※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/
テンプレここまで
探検
C++相談室 part154
■ このスレッドは過去ログ倉庫に格納されています
2021/01/08(金) 17:54:00.55ID:0DW9z0rL
231デフォルトの名無しさん
2021/01/26(火) 13:54:11.58ID:uiGtA95I 野菜の活〆を発明したら儲かるだろな。
放射線以外で。
放射線以外で。
232デフォルトの名無しさん
2021/01/26(火) 21:06:31.25ID:Du8Hqhh0 いいかげんスレ違い。
233デフォルトの名無しさん
2021/01/26(火) 21:46:24.92ID:ZRZozNwf プリプロセッサマクロだらけの“汚い”コードを否定したらC/C++の強みを失うことになる。
JavaやC#はプリプロセッサマクロが貧弱なのが玉にキズだ。
JavaやC#はプリプロセッサマクロが貧弱なのが玉にキズだ。
234デフォルトの名無しさん
2021/01/26(火) 21:51:10.66ID:ZRZozNwf pybind11スレがないこんな世の中じゃ〜Python〜
まぁマクロの塊のような代物だが。
まぁマクロの塊のような代物だが。
235デフォルトの名無しさん
2021/01/27(水) 06:03:44.65ID:yQalyIAE C++はコミュニティで発言力のある人が大抵率直にものを言い過ぎる、悪く言えば口が悪いので忌み嫌われてるとこある
236デフォルトの名無しさん
2021/01/27(水) 07:30:48.85ID:eLUquqZ0237デフォルトの名無しさん
2021/01/27(水) 07:48:28.28ID:4l9V085Z でも、Linux板なんか失敗したボランティアの住所載せて、放火しろとは言ってませんよ??言ってませんよ??・・・などの書き込みあるからな。
それに比べれはだいぶ良識的では?
それに比べれはだいぶ良識的では?
238デフォルトの名無しさん
2021/01/27(水) 11:26:52.94ID:cJSBZXf9 C/C++のプリプロセッサも貧弱すぎ
239デフォルトの名無しさん
2021/01/27(水) 17:43:27.13ID:nPuTGnvU C++例外のスタック情報がとれないのはC++の欠点。
例外でスタック情報を使えるJava/C#/Python/Perlはエライ。
例外でスタック情報を使えるJava/C#/Python/Perlはエライ。
240デフォルトの名無しさん
2021/01/27(水) 21:51:38.91ID:NT655YPf おまえは二度とC++使うな
241デフォルトの名無しさん
2021/01/27(水) 23:04:53.57ID:TqcnYSNG >>239
スタックフレーム作ればイケるってば
スタックフレーム作ればイケるってば
242デフォルトの名無しさん
2021/01/28(木) 09:07:27.76ID:dmDIUcy2 >>235
例えば誰?
例えば誰?
243はちみつ餃子 ◆8X2XSCHEME
2021/01/28(木) 10:23:46.51ID:vBYpvnJx244デフォルトの名無しさん
2021/01/28(木) 10:52:39.05ID:dNWrUHbO >>223
フグは豚肉に触感似てるけどフグの方が美味い
フグは豚肉に触感似てるけどフグの方が美味い
245デフォルトの名無しさん
2021/01/28(木) 10:54:00.53ID:dNWrUHbO >>228
日本で感染爆発が起きてないのは以前からジビエが流行してたからか
日本で感染爆発が起きてないのは以前からジビエが流行してたからか
246デフォルトの名無しさん
2021/01/28(木) 10:55:14.42ID:dNWrUHbO >>230-231
白菜は外の皮じゃなくて中の芯から先に食べろと言われている
白菜は外の皮じゃなくて中の芯から先に食べろと言われている
247デフォルトの名無しさん
2021/01/28(木) 11:40:01.79ID:eLxqvNeX >>200
ユニコ時代だからAPLよりずっと先行ってるぞ
組み込み演算子で∩∉とか集合論の記号採用してたりアトミックな演算子は⚛++とか洒落効いてたりする
一方で古代perlのプレフィックスは緩和されてる
ユニコ時代だからAPLよりずっと先行ってるぞ
組み込み演算子で∩∉とか集合論の記号採用してたりアトミックな演算子は⚛++とか洒落効いてたりする
一方で古代perlのプレフィックスは緩和されてる
248デフォルトの名無しさん
2021/01/28(木) 11:51:37.25ID:eLxqvNeX ∅∘∩ ⊍∪ ⊖ ⊎ ∖≅ ∈ ∉ ∋ ∌ ≡
≢ ⊂ ⊄ ⊃ ⊅ ⊆ ⊈ ⊇ ⊉ ≼ ≽.«»≠
他組み込みではこんな感じか
>= やらよりmずっと可読性高いと思う、エディタもvimとか高機能なのなら問題なかろう
文字を表示してくれるのは特に便利
≢ ⊂ ⊄ ⊃ ⊅ ⊆ ⊈ ⊇ ⊉ ≼ ≽.«»≠
他組み込みではこんな感じか
>= やらよりmずっと可読性高いと思う、エディタもvimとか高機能なのなら問題なかろう
文字を表示してくれるのは特に便利
249デフォルトの名無しさん
2021/01/28(木) 11:58:59.45ID:kskG1wa2 >>245
さすがにコウモリはどこの地方でも食わんだろ
さすがにコウモリはどこの地方でも食わんだろ
250デフォルトの名無しさん
2021/01/28(木) 17:23:15.04ID:8Al9oSyF なんでプリミティブ型って継承できんの?
252デフォルトの名無しさん
2021/01/28(木) 17:41:41.73ID:GsoT0xyU クラスAのオブジェクトをクラスBのメンバにするときってどうやってAのコンストラクタ呼ぶの?
class B{
A a;
public:
B(){
// この辺でAのコンストラクタを呼びたい
}
};
class B{
A a;
public:
B(){
// この辺でAのコンストラクタを呼びたい
}
};
253デフォルトの名無しさん
2021/01/28(木) 17:48:00.82ID:WrE+/6so254デフォルトの名無しさん
2021/01/28(木) 18:07:20.07ID:IHrlZHr2 >>243
gdbはおいとくとして、Visual StudioってC++例外のスロー位置を追跡できたっけ?
gdbはおいとくとして、Visual StudioってC++例外のスロー位置を追跡できたっけ?
255デフォルトの名無しさん
2021/01/28(木) 18:50:38.47ID:Hqj+H5f7256デフォルトの名無しさん
2021/01/28(木) 18:54:30.61ID:IHrlZHr2 あとで再初期化したくなること多いから、結局コンストラクタの実装を別の関数に分離すること多いよね。
コンストラクタの種類が増えたら使いまわしたくなるし。
コンストラクタの種類が増えたら使いまわしたくなるし。
257デフォルトの名無しさん
2021/01/28(木) 19:24:37.48ID:q3mIN91/ >>243
デバッガ使いこなせないとか話にならんだろ・・
デバッガ使いこなせないとか話にならんだろ・・
258デフォルトの名無しさん
2021/01/28(木) 19:28:49.13ID:IHrlZHr2 デバッガやシンボルがない環境でもスタックトレースできたほうが良いと思うけどね。
後発言語の生産性の高さはこの辺の充実ぶりにあるでしょ。
後発言語の生産性の高さはこの辺の充実ぶりにあるでしょ。
259デフォルトの名無しさん
2021/01/28(木) 19:42:24.27ID:IHrlZHr2 他プロセスと連携するシステムにはデバッガを当てにくい事が多い。
タイミング依存の不具合を追跡する場合、デバッガがまったく役に立たない。
タイミング依存の不具合を追跡する場合、デバッガがまったく役に立たない。
260デフォルトの名無しさん
2021/01/28(木) 20:25:47.81ID:eBfsAdOM >>258
その手の生産性と成果物の効率はトレードオフでどっちを重視するかが違うだけでしょ
その手の生産性と成果物の効率はトレードオフでどっちを重視するかが違うだけでしょ
261デフォルトの名無しさん
2021/01/28(木) 20:36:13.14ID:IHrlZHr2 デバッガ使いこなすとか言って悦に入ってる人と会話が噛み合わないんだが。
262デフォルトの名無しさん
2021/01/28(木) 20:36:14.66ID:yp+dwtvR >>258
だよね
むしろデバッガをアタッチできる環境ならスタックトレースはなくてもなんとかなる
ユーザー環境でスタックトレースがテキストファイルに落ちるようになってるとトラブルシューティングがしやすい
だよね
むしろデバッガをアタッチできる環境ならスタックトレースはなくてもなんとかなる
ユーザー環境でスタックトレースがテキストファイルに落ちるようになってるとトラブルシューティングがしやすい
263デフォルトの名無しさん
2021/01/28(木) 21:29:31.41ID:oPlwADge >>261
ここほとんどアマチュアの人だから許してやろうやw
ここほとんどアマチュアの人だから許してやろうやw
264デフォルトの名無しさん
2021/01/28(木) 21:48:11.74ID:q3mIN91/265デフォルトの名無しさん
2021/01/28(木) 21:51:13.66ID:q3mIN91/266デフォルトの名無しさん
2021/01/28(木) 21:51:23.69ID:oPlwADge いやごめん、俺は流れは一切追ってなくて他意はないよ
茶化したかっただけ
気にしないで
茶化したかっただけ
気にしないで
267デフォルトの名無しさん
2021/01/28(木) 23:50:09.41ID:g6qVZG7L 発狂やないかw
Perlの人かな
Perlの人かな
268デフォルトの名無しさん
2021/01/28(木) 23:53:15.94ID:RfcrpqT0 >>253,255
じゃあ、Bを構築してしばらく経ってからわかる情報を使ってAを構築したいとき、Aのインスタンスをメンバとして持つのは不可能ということですか?
ポインタで持つ以外の方法はない (想定されてない?) のでしょうか
constなメンバ変数を初期化するときも近いことを思います
じゃあ、Bを構築してしばらく経ってからわかる情報を使ってAを構築したいとき、Aのインスタンスをメンバとして持つのは不可能ということですか?
ポインタで持つ以外の方法はない (想定されてない?) のでしょうか
constなメンバ変数を初期化するときも近いことを思います
269デフォルトの名無しさん
2021/01/29(金) 00:10:27.15ID:ZIYbfTXe >>268
そういうコンストラクタ制約を持つクラスはけっこう多い。
WindowsのC++向けGDI+ライブラリのクラス群はまさにこれが当てはまる。
広範に存在している以上は受け入れるしかない。
今時は標準でshared_ptrなどの共有ポインタクラスを使えるので、さほど問題にならないでしょ。
そういうコンストラクタ制約を持つクラスはけっこう多い。
WindowsのC++向けGDI+ライブラリのクラス群はまさにこれが当てはまる。
広範に存在している以上は受け入れるしかない。
今時は標準でshared_ptrなどの共有ポインタクラスを使えるので、さほど問題にならないでしょ。
270デフォルトの名無しさん
2021/01/29(金) 00:19:48.35ID:SRnp44iw >>268
Aに引数なしのコンストラクタ、コピーorムーブ代入演算子があるなら、後で作って代入でもいいけど
まぁ特に理由なければ(スマート)ポインタで持った方が無難だし楽
constはどうしようもない
Aに引数なしのコンストラクタ、コピーorムーブ代入演算子があるなら、後で作って代入でもいいけど
まぁ特に理由なければ(スマート)ポインタで持った方が無難だし楽
constはどうしようもない
271デフォルトの名無しさん
2021/01/29(金) 00:22:16.89ID:MWSZTtHp >>268
「Bを構築してしばらく経ってからわかる情報」を返すヘルパー関数を作って初期化リストの中で呼べばいいじゃない
「Bを構築してしばらく経ってからわかる情報」を返すヘルパー関数を作って初期化リストの中で呼べばいいじゃない
272デフォルトの名無しさん
2021/01/29(金) 07:49:13.10ID:/axUqcOX データメンバをconstってあんまりやらないな
publicに晒すとかじゃなきゃメンバ関数を
constにするだけで足りるから
あ、staticメンバのconstはよくやるけどね
publicに晒すとかじゃなきゃメンバ関数を
constにするだけで足りるから
あ、staticメンバのconstはよくやるけどね
273デフォルトの名無しさん
2021/01/29(金) 08:02:53.38ID:1V7SRlCX >>251
ある
実装は同じunsigned longでも意味が違うから別クラスとして扱いたいときとか
private継承できたらナア……
現状(C++03)はプリミティブ型と同じ演算子(のうちの当座のアプリケーションで使うやつ)をいちいち実装したクラスを作って
NDEBUGマクロで実装を切り替えるみたいな涙ぐましい努力が要る
ある
実装は同じunsigned longでも意味が違うから別クラスとして扱いたいときとか
private継承できたらナア……
現状(C++03)はプリミティブ型と同じ演算子(のうちの当座のアプリケーションで使うやつ)をいちいち実装したクラスを作って
NDEBUGマクロで実装を切り替えるみたいな涙ぐましい努力が要る
274デフォルトの名無しさん
2021/01/29(金) 08:05:13.74ID:1V7SRlCX 訂正orz
誤: private継承
正: public継承かつoperator unsigned long()はprivateかつunsigned longからの構築はexplicit
誤: private継承
正: public継承かつoperator unsigned long()はprivateかつunsigned longからの構築はexplicit
275デフォルトの名無しさん
2021/01/29(金) 08:08:37.91ID:1V7SRlCX メンバをconstにして代入演算子を定義せずにいるとデフォルトの代入演算子をが定義できないとコンパイラに文句を言われる俺環、
276デフォルトの名無しさん
2021/01/29(金) 09:20:50.39ID:koPyq8om277デフォルトの名無しさん
2021/01/29(金) 12:20:22.74ID:c2S2Mocm メンバ変数のconstはポインタ型ならすることあるけど、値で持つメンバ変数はあんまり意味なくない?
constなくても勝手に外部から書き換えられないように、ちゃんと隠蔽しとけばいいだけでしょ
constなくても勝手に外部から書き換えられないように、ちゃんと隠蔽しとけばいいだけでしょ
278デフォルトの名無しさん
2021/01/29(金) 12:35:16.78ID:2DekME/2 >>277
class内の処理においても変更しないつもりだ、変更されることはない、と明示することで意識しておかなければならないことを少し軽減できるのだから、無駄ではないと思う。
手間をかけずにconstにできるならしておけばいいし、逆に無理して複雑なことをしてまでconstにする必要はないという程度のことかと思う。
class内の処理においても変更しないつもりだ、変更されることはない、と明示することで意識しておかなければならないことを少し軽減できるのだから、無駄ではないと思う。
手間をかけずにconstにできるならしておけばいいし、逆に無理して複雑なことをしてまでconstにする必要はないという程度のことかと思う。
279デフォルトの名無しさん
2021/01/29(金) 12:55:03.34ID:c2S2Mocm280はちみつ餃子 ◆8X2XSCHEME
2021/01/29(金) 14:10:30.45ID:heeNhc25281デフォルトの名無しさん
2021/01/29(金) 16:04:20.47ID:5pIDnM+S >>251
3値のboolean作るときってboolean継承すべき?
3値のboolean作るときってboolean継承すべき?
282デフォルトの名無しさん
2021/01/29(金) 16:07:44.73ID:5pIDnM+S283デフォルトの名無しさん
2021/01/29(金) 16:10:21.66ID:5pIDnM+S >>259
COMサーバーというかDX用にフィルタ書いてると訳判らなくなった
COMサーバーというかDX用にフィルタ書いてると訳判らなくなった
284デフォルトの名無しさん
2021/01/29(金) 16:56:37.48ID:RxAp4EkX285デフォルトの名無しさん
2021/01/29(金) 17:20:59.69ID:ADFs+h5F boostにtriboolってのがあるな
286はちみつ餃子 ◆8X2XSCHEME
2021/01/29(金) 17:23:22.91ID:t7wU8l8M >>281
仮に真偽値型を継承可能であったとして、三値型が真偽値型を継承するのはおかしいだろう。
場合によって柔軟な判断が必要な場合はあるものの、
継承は is-a 関係を表したいときに限ったほうがよろしいというのが一般的な設計原則だと思うが。
仮に真偽値型を継承可能であったとして、三値型が真偽値型を継承するのはおかしいだろう。
場合によって柔軟な判断が必要な場合はあるものの、
継承は is-a 関係を表したいときに限ったほうがよろしいというのが一般的な設計原則だと思うが。
287デフォルトの名無しさん
2021/01/29(金) 17:25:47.23ID:GtDK4kd8 nullableか、DBのフィールド値?
288デフォルトの名無しさん
2021/01/29(金) 18:57:54.24ID:ZIYbfTXe はちみつ餃子「スタックトレースできないならデバッガ当てればいいじゃない」
289デフォルトの名無しさん
2021/01/29(金) 19:41:08.91ID:rAmh2V0K 典型的な円楕円問題だな
290デフォルトの名無しさん
2021/01/29(金) 19:56:26.71ID:ZIYbfTXe テンプレートを使えば、クラス継承に依存しない記述が可能。
iostreamが黒歴史扱いである現実を踏まえての話。
iostreamが黒歴史扱いである現実を踏まえての話。
291デフォルトの名無しさん
2021/01/29(金) 21:24:08.77ID:WFMo+mcm とりあえずiostream批判しとけば訳知り顔ができた気に浸れる浅はかなやつ
292デフォルトの名無しさん
2021/01/29(金) 21:35:39.96ID:nnAlz0gZ c++ニワカあるあるだよなw
iostreamとりあえず批判奴w
iostreamとりあえず批判奴w
293デフォルトの名無しさん
2021/01/29(金) 21:39:11.47ID:ZIYbfTXe iostreamは使いもしないメンバ変数を継承することを強要される悪い手本でしょ。
294デフォルトの名無しさん
2021/01/29(金) 22:16:38.63ID:WFMo+mcm 何も説得力を示さずに突然「悪い」と言い出す
295デフォルトの名無しさん
2021/01/30(土) 01:56:51.26ID:SJAC6oP5 iostreamはクソなのは正解だが別に批判するようなことでもない
なぜなら使わなければいいだけの話だからだ
なぜなら使わなければいいだけの話だからだ
296デフォルトの名無しさん
2021/01/30(土) 02:06:50.03ID:OHt9F1SU 無理にクラス継承を使わずオーバーライド関数とそれを使うテンプレート関数を充実させたほうが幸せになれる。
297デフォルトの名無しさん
2021/01/30(土) 02:41:04.49ID:PJvUkb6d 別に無理して継承を使っているわけではない
どっかの馬の骨が気に入らんからといって
あれを使うなこれを使うなと言われるほうが無理そのものだ
どっかの馬の骨が気に入らんからといって
あれを使うなこれを使うなと言われるほうが無理そのものだ
298デフォルトの名無しさん
2021/01/30(土) 02:53:37.72ID:OHt9F1SU 例えば、ファイルに書き込む処理があったとする。
ファイルハンドルとして有名な型としては、int型、FILE*型、iostream型、Win32APIのHANDLE型などがあげられる。
これらを派生クラスに閉じ込めて抽象化するよりも、関数名が同じになるオーバーライド関数を作ってテンプレート関数から呼んだ方がはるかに楽。
int WriteBuffer(int fp, const char* buffer);
int WriteBuffer(FILE* fp, const char* buffer);
int WriteBuffer(ostream& fp, const char* buffer);
int WriteBuffer(HANDLE fp, const char* buffer);
template<typename FILE_OBJECT>
void WriteContent(FILE_OBJECT o)
{
WriteBuffer(o, "write test1");
WriteBuffer(o, "write test2");
}
ファイルハンドルとして有名な型としては、int型、FILE*型、iostream型、Win32APIのHANDLE型などがあげられる。
これらを派生クラスに閉じ込めて抽象化するよりも、関数名が同じになるオーバーライド関数を作ってテンプレート関数から呼んだ方がはるかに楽。
int WriteBuffer(int fp, const char* buffer);
int WriteBuffer(FILE* fp, const char* buffer);
int WriteBuffer(ostream& fp, const char* buffer);
int WriteBuffer(HANDLE fp, const char* buffer);
template<typename FILE_OBJECT>
void WriteContent(FILE_OBJECT o)
{
WriteBuffer(o, "write test1");
WriteBuffer(o, "write test2");
}
299デフォルトの名無しさん
2021/01/30(土) 03:53:39.52ID:ULcRPxme ドヤってるところすまんがそれオーバーライドじゃない
300デフォルトの名無しさん
2021/01/30(土) 04:01:05.04ID:PJvUkb6d プゲラ
301デフォルトの名無しさん
2021/01/30(土) 05:45:11.84ID:SLqQC90z フリー関数とクラスメンバでは、インテリセンスが効くか効かないかの違いもある。
302デフォルトの名無しさん
2021/01/30(土) 05:52:17.44ID:OHt9F1SU そんなあなたに名前空間
303デフォルトの名無しさん
2021/01/30(土) 06:06:53.60ID:SLqQC90z クラスの場合、名前空間を書かなくても、インテリセンスが効く。
304デフォルトの名無しさん
2021/01/30(土) 06:47:43.00ID:budoESfZ コンストラクタの初期化リストで
class A{
int x;
public:
A(int x) : x(x) {}
};
みたいにしたとき、ちゃんとメンバのxがコンストラクタの引数のxで初期化されますよね?
メンバの x と同名の引数の x が同一のスコープに同居しているようで紛らわしいかなと思ったのですが、こういう書き方を避ける慣習はありますか
class A{
int x;
public:
A(int x) : x(x) {}
};
みたいにしたとき、ちゃんとメンバのxがコンストラクタの引数のxで初期化されますよね?
メンバの x と同名の引数の x が同一のスコープに同居しているようで紛らわしいかなと思ったのですが、こういう書き方を避ける慣習はありますか
305デフォルトの名無しさん
2021/01/30(土) 07:04:07.72ID:ULcRPxme 自分は普通にその書き方してる
避ける人も居るっぽいけど好きなようにすればいい
避ける人も居るっぽいけど好きなようにすればいい
306デフォルトの名無しさん
2021/01/30(土) 09:09:49.20ID:PHKUCpSE iostreamマンセーバカってのは型安全ならどんな仕様でも良いと思ってるカスが多いからな。
型安全は評価する一項目に過ぎないってのに。
型安全は評価する一項目に過ぎないってのに。
307デフォルトの名無しさん
2021/01/30(土) 09:29:38.23ID:vDjChjwr iostreamは整形のための情報をわざわざ状態として持たされるのがクソ
当時は状態が邪悪だっていう考え方が一般的じゃなかったからしょうがないけど
当時は状態が邪悪だっていう考え方が一般的じゃなかったからしょうがないけど
308デフォルトの名無しさん
2021/01/30(土) 09:38:20.91ID:2pTx0la6 でも状態もってなかったら記述が煩雑になりすぎない?
HTMLのマークアップとまでは言わんまでも
HTMLのマークアップとまでは言わんまでも
309デフォルトの名無しさん
2021/01/30(土) 09:59:20.80ID:OHt9F1SU 整形設定を記憶する変数インスタンスをiostreamインスタンスと分離すべきって話でしょ。
必要に応じて差し替えできるように参照渡しするか、逆にiostreamを参照渡しするとか色々やれたはず。
必要に応じて差し替えできるように参照渡しするか、逆にiostreamを参照渡しするとか色々やれたはず。
310デフォルトの名無しさん
2021/01/30(土) 10:06:40.70ID:OHt9F1SU というか他のオブジェクト指向言語だと整形情報がFormatterクラスとかに分離されているのが普通だし。
311デフォルトの名無しさん
2021/01/30(土) 10:32:05.24ID:PJvUkb6d FORTRANのFORMAT文が好きな人をどうこうしようとは思わない
312デフォルトの名無しさん
2021/01/30(土) 10:40:52.47ID:hVJYorL3 初歩的な質問なのですが、stringクラスの内部バッファはデストラクタで破棄されるため自分では一切管理しなくていいという認識で良いのでしょうか?
313デフォルトの名無しさん
2021/01/30(土) 11:17:24.76ID:SLqQC90z アロケータによるけど、普通は管理しなくて良いのでは?
314デフォルトの名無しさん
2021/01/30(土) 12:47:13.80ID:EWZvTk3z >>308
状態持ってても無駄に煩雑(複雑ではない)
状態持ってても無駄に煩雑(複雑ではない)
315デフォルトの名無しさん
2021/01/30(土) 12:57:10.51ID:8FYOnD7D iostream 型安全なのはいいけど、char/signed char/unsigned char ぜんぶ文字扱いするのはやめて欲しかった。
316デフォルトの名無しさん
2021/01/30(土) 13:18:35.30ID:SLqQC90z 単項プラスで。
317はちみつ餃子 ◆8X2XSCHEME
2021/01/30(土) 13:18:38.04ID:4OMKN/Z4 >>309
入出力を直接的に司るバッファクラス (basic_streambuf) と
書式制御を司るストリームクラスを分離したデザインになっているし、
必要に応じて差し替えることも出来るよ。
iostream においてそれがわかりやすいか、良いデザインであるかは別として、
ちゃんと分離したデザインになってる。
入出力を直接的に司るバッファクラス (basic_streambuf) と
書式制御を司るストリームクラスを分離したデザインになっているし、
必要に応じて差し替えることも出来るよ。
iostream においてそれがわかりやすいか、良いデザインであるかは別として、
ちゃんと分離したデザインになってる。
>>304
私は馬鹿なのでメンバ変数とコンストラクタ引数を x, _x というふうに書き分けています、馬鹿が感染るかもしれないのでお勧めはしません
私は馬鹿なのでメンバ変数とコンストラクタ引数を x, _x というふうに書き分けています、馬鹿が感染るかもしれないのでお勧めはしません
319デフォルトの名無しさん
2021/01/30(土) 15:08:20.24ID:S5wIZr5N C++でのメンバ変数は、標準的には m_xと書く。
320デフォルトの名無しさん
2021/01/30(土) 16:04:40.96ID:0ahE8ZR3321デフォルトの名無しさん
2021/01/30(土) 16:41:05.48ID:SLqQC90z MicrosoftとAdobeがその書き方多いですね。
322デフォルトの名無しさん
2021/01/30(土) 17:13:12.28ID:S5wIZr5N なお、_x は、命名規約上、禁止。先頭が _ の名前はコンパイラなどの
システム予約なため。
システム予約なため。
323デフォルトの名無しさん
2021/01/30(土) 17:14:26.98ID:2r/QlSUC そうだったっけ?
324はちみつ餃子 ◆8X2XSCHEME
2021/01/30(土) 17:19:55.79ID:4OMKN/Z4 >>304
>>318-319
命名規約の方法論は色々なのでプレフィクスを付けるルールが定めてある場合もあるし、
むしろ一致させていくようにしているものもある。
私自身は、少なくともメンバに値を設定するだけの単純なコンストラクタである場合には
名前を一致させていくスタイルで書く。
C++ を使う上でのガイドラインとしてよく参照されているのはグーグルのスタイルガイドで、
データメンバの名前は最後にアンダースコアを付けるようにルールを定めている。
https://google.github.io/styleguide/cppguide.html#Variable_Names
その一方では C++ の設計者である Stroustrup は型やスコープを変数名に含めるのは好ましくない
(しかし部分的に便利な場合もあることは認めている) と書いている。
https://stroustrup.com/bs_faq2.html#Hungarian
どちらの習慣が圧倒的優勢ということはないと思う。
>>322
グローバル変数としてはアンダースコアで始まる名前は予約されているけど、
そうでない場合には問題ない。
ただし、
・ アンダースコアで始まって大文字が続く名前
・ アンダースコアが連続 (名前の先頭部分以外でも) する名前
は名前の種類やスコープにかかわらずどこでも予約されている。
>>318-319
命名規約の方法論は色々なのでプレフィクスを付けるルールが定めてある場合もあるし、
むしろ一致させていくようにしているものもある。
私自身は、少なくともメンバに値を設定するだけの単純なコンストラクタである場合には
名前を一致させていくスタイルで書く。
C++ を使う上でのガイドラインとしてよく参照されているのはグーグルのスタイルガイドで、
データメンバの名前は最後にアンダースコアを付けるようにルールを定めている。
https://google.github.io/styleguide/cppguide.html#Variable_Names
その一方では C++ の設計者である Stroustrup は型やスコープを変数名に含めるのは好ましくない
(しかし部分的に便利な場合もあることは認めている) と書いている。
https://stroustrup.com/bs_faq2.html#Hungarian
どちらの習慣が圧倒的優勢ということはないと思う。
>>322
グローバル変数としてはアンダースコアで始まる名前は予約されているけど、
そうでない場合には問題ない。
ただし、
・ アンダースコアで始まって大文字が続く名前
・ アンダースコアが連続 (名前の先頭部分以外でも) する名前
は名前の種類やスコープにかかわらずどこでも予約されている。
325デフォルトの名無しさん
2021/01/30(土) 17:30:01.20ID:2r/QlSUC 互いの信仰を侵害してはならないがチーム内では統一されている必要がある
規約の背景は明確である必要がある
規約の背景は明確である必要がある
326デフォルトの名無しさん
2021/01/30(土) 18:08:50.99ID:OHt9F1SU >>317
まず、FILE*とostreamが一対一対応していないのがダメ。
せっかくC言語でファイル、パイプ、標準IOがFILE*型としてで統合化・抽象化されていたのに、
C++でostreamとfstreamで分離される劣化が起きた。
まず、FILE*とostreamが一対一対応していないのがダメ。
せっかくC言語でファイル、パイプ、標準IOがFILE*型としてで統合化・抽象化されていたのに、
C++でostreamとfstreamで分離される劣化が起きた。
327デフォルトの名無しさん
2021/01/30(土) 18:30:25.89ID:PJvUkb6d ios_baseで統一する形に変わっただけ
それをFILE*がどうたらと駄々こねるのは
頭が堅すぎる実年齢に無関係の老害だ
それをFILE*がどうたらと駄々こねるのは
頭が堅すぎる実年齢に無関係の老害だ
328デフォルトの名無しさん
2021/01/30(土) 18:36:35.02ID:OHt9F1SU パイプ処理をostream系で書く奇特な人ってどのくらいいるの?
329デフォルトの名無しさん
2021/01/30(土) 18:41:09.24ID:OHt9F1SU pythonは定数がないから全部大文字の変数は定数のようにみなしましょう的な談合がある。
330デフォルトの名無しさん
2021/01/30(土) 19:00:34.72ID:0ahE8ZR3 定数というか型もない
>>322
束縛領域が狭いローカル変数とかには、_x を使ってもいいのではないか?と考えていますが‥‥
束縛領域が狭いローカル変数とかには、_x を使ってもいいのではないか?と考えていますが‥‥
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
