エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
前スレ
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1469177649/
探検
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/11/06(日) 22:58:02.60ID:dU5z27As
523デフォルトの名無しさん
2017/03/26(日) 08:58:38.45ID:4rESVRzB ここはお前の日記を垂れる場所じゃない
「サポートによるとコンパイラのバグだった」で済むのに
アレやってコレやってを書くな低能
「サポートによるとコンパイラのバグだった」で済むのに
アレやってコレやってを書くな低能
524デフォルトの名無しさん
2017/03/27(月) 10:03:34.57ID:wSWIgauQ 事後報告あると参考になっていいんだけどな
今回は本人以外に状況がわからないから事後報告されてもw
今回は本人以外に状況がわからないから事後報告されてもw
525デフォルトの名無しさん
2017/03/30(木) 03:06:01.35ID:6sTQLdA2 http://codepad.org/KMQH3TsZ
ポインタをメンバに持たせた場合のget/setの書き方が分かりません
getの方は、ポインタを返すときに返した先で値を変えられないようにconstを付けたのですが、
sizePlus10のような関数を呼びたい場合に、const_castを付けて呼ぶことになってしまいました
値の変更をするのでsetを通してやるのが良いと思うのですが、何か良い書き方ありますか?
また、setの方は、一括で設定させることはできるのですが、
data->id、data->sizeの値を個別に設定したい場合、何か良い書き方はありますか?
コメントの部分のようにsetメンバ関数を何個も書く方法しか思いつきません
ポインタをメンバに持たせた場合のget/setの書き方が分かりません
getの方は、ポインタを返すときに返した先で値を変えられないようにconstを付けたのですが、
sizePlus10のような関数を呼びたい場合に、const_castを付けて呼ぶことになってしまいました
値の変更をするのでsetを通してやるのが良いと思うのですが、何か良い書き方ありますか?
また、setの方は、一括で設定させることはできるのですが、
data->id、data->sizeの値を個別に設定したい場合、何か良い書き方はありますか?
コメントの部分のようにsetメンバ関数を何個も書く方法しか思いつきません
526デフォルトの名無しさん
2017/03/30(木) 07:50:43.79ID:GtG5BmiK getDataの結果を修正したいのだから
杓子定規にgetDataの戻りにconst付けるのを止めればいいのではないか
そう言えばC++17(ドラフト)もstring::dataの戻りが非constに修正されたような
杓子定規にgetDataの戻りにconst付けるのを止めればいいのではないか
そう言えばC++17(ドラフト)もstring::dataの戻りが非constに修正されたような
527デフォルトの名無しさん
2017/03/30(木) 08:08:59.00ID:KJlpKUaR memcpy w
528デフォルトの名無しさん
2017/03/30(木) 10:48:22.67ID:JHpE2Dpf >>525
一般論として形でただ覚えるのではなくて意味を理解しよう
理解があやしいから設計の一貫性がなく混乱してるようにみえる
・Dataをポインタで所有するのはなぜ
・ゲッター/セッターを使ってアクセスするのはなぜ
・ゲッターで返す値にconstをつけるのはなぜ
・sizePlus10がData*を受けとるのはなぜ
MyClassの設計方針にあわせるならsizePlus10をDataではなくMyClassを受けとるようにして
void sizePlus10(MyClass & mc)
{
Data newdata = { mc.getData()->id, mc.getData()->size + 10 };
mc.setData(newdata);
}
あるいは別の関数を作って
void MyClassSizePlus10(MyClass & mc)
{
Data newdata = *mc.getData();
sizePLus10(&newdata);
mc.setData(newdata);
}
これが変だとか非効率だとか思うなら
MyClassの設計が要求にあってないのでそっちを変更する
一般論として形でただ覚えるのではなくて意味を理解しよう
理解があやしいから設計の一貫性がなく混乱してるようにみえる
・Dataをポインタで所有するのはなぜ
・ゲッター/セッターを使ってアクセスするのはなぜ
・ゲッターで返す値にconstをつけるのはなぜ
・sizePlus10がData*を受けとるのはなぜ
MyClassの設計方針にあわせるならsizePlus10をDataではなくMyClassを受けとるようにして
void sizePlus10(MyClass & mc)
{
Data newdata = { mc.getData()->id, mc.getData()->size + 10 };
mc.setData(newdata);
}
あるいは別の関数を作って
void MyClassSizePlus10(MyClass & mc)
{
Data newdata = *mc.getData();
sizePLus10(&newdata);
mc.setData(newdata);
}
これが変だとか非効率だとか思うなら
MyClassの設計が要求にあってないのでそっちを変更する
529デフォルトの名無しさん
2017/03/30(木) 20:11:34.52ID:irpIFLVN530デフォルトの名無しさん
2017/03/30(木) 23:27:09.74ID:O3+3nsIM531デフォルトの名無しさん
2017/03/30(木) 23:45:25.72ID:s+CP+YQd こういえクソみたいな方法を自慢気に語り出す奴が居るところかC++の最もクソな所だよね
532片山博文MZ ◆T6xkBnTXz7B0
2017/03/30(木) 23:51:55.55ID:2hi+y029 デフォルトコピーコンストラクターとか構造体代入とか知らないんだろう。
533デフォルトの名無しさん
2017/03/31(金) 00:14:17.76ID:5j4NF4+Z534デフォルトの名無しさん
2017/03/31(金) 01:59:49.12ID:OFYzpq31 やべえなおい糞コードの臭いがプンプンしやがるぜ
535デフォルトの名無しさん
2017/03/31(金) 02:09:29.70ID:DQgqVTGo >>526-529
ありがとうございます
今まではとりあえずget/setを書いてgetにはconstを付けとけば良いみたいな認識でしたが、
想定されるクラスの使われ方に合わせて適宜変更するべきでした
MyClassのようなget/setの分け方をすると、
sizePlus10のような関数やsetで不便になってしまうので、
constを付けないget/set共用のものにしてそれを通してアクセスさせるのが適切でした
( getData()でアクセスする場合、Data * const getData() const { /**/ } みたいな )
とても参考になりました
ありがとうございます
今まではとりあえずget/setを書いてgetにはconstを付けとけば良いみたいな認識でしたが、
想定されるクラスの使われ方に合わせて適宜変更するべきでした
MyClassのようなget/setの分け方をすると、
sizePlus10のような関数やsetで不便になってしまうので、
constを付けないget/set共用のものにしてそれを通してアクセスさせるのが適切でした
( getData()でアクセスする場合、Data * const getData() const { /**/ } みたいな )
とても参考になりました
536デフォルトの名無しさん
2017/03/31(金) 11:52:48.85ID:xItn/dk+ >>531
くそじゃない方法をおしえて
くそじゃない方法をおしえて
537デフォルトの名無しさん
2017/03/31(金) 12:09:56.69ID:c13jjk6+ C#じゃないからないでしょ
538デフォルトの名無しさん
2017/03/31(金) 13:26:56.75ID:CbPadW0u539デフォルトの名無しさん
2017/03/31(金) 13:38:11.94ID:2wgHKgmk540片山博文MZ ◆T6xkBnTXz7B0
2017/03/31(金) 17:24:06.64ID:tvggMnLQ typedef struct MY_STRUCT
{
int ch;
} MY_STRUCT;
MY_STRUCT a,b;
a.ch = 0;
b = a; //代入できる
{
int ch;
} MY_STRUCT;
MY_STRUCT a,b;
a.ch = 0;
b = a; //代入できる
541デフォルトの名無しさん
2017/03/31(金) 19:17:35.19ID:Xv9Etv1i542片山博文MZ ◆T6xkBnTXz7B0
2017/03/31(金) 19:19:25.80ID:tvggMnLQ 構造体の代入ができなかったのは大昔のことだ。
>>540
それ,K&R1 から堕落したよね
それ,K&R1 から堕落したよね
544片山博文MZ ◆T6xkBnTXz7B0
2017/03/31(金) 19:40:25.86ID:tvggMnLQ 構造体定義を#include <pshpack1.h>と#include <poppack.h>で囲むのは、スピードよりもメモリー効率を優先するときにする。
545片山博文MZ ◆T6xkBnTXz7B0
2017/03/31(金) 19:44:56.93ID:tvggMnLQ あるいは構造体のレイアウトを分かりやすくするときにパッキングを指定する。
547デフォルトの名無しさん
2017/03/31(金) 19:49:13.63ID:RKtYGe+y > スピードよりもメモリー効率を優先するときにする
20年くらい前まではそういう老人もいたね
今はメモリレイアウトを固定したい時にしか使わないけど
20年くらい前まではそういう老人もいたね
今はメモリレイアウトを固定したい時にしか使わないけど
548片山博文MZ ◆T6xkBnTXz7B0
2017/03/31(金) 19:58:28.84ID:tvggMnLQ #pragma 直接指定は礼儀が悪い、昔のやり方だ。
549デフォルトの名無しさん
2017/04/01(土) 02:25:44.35ID:m99QLuku メモリ効率だけの問題なら大抵の場合は順番入れ替えるだけで問題ないしな
551デフォルトの名無しさん
2017/04/01(土) 08:31:33.23ID:AOt54aKT そうそう
スタックに自動変数とかも言語道断
全部staticじゃなきゃね
スタックに自動変数とかも言語道断
全部staticじゃなきゃね
>>551
スタックに自動変数はあたりまえだよ‥static おじさん,じゃないつもりなんだが‥
構造体はポインタで扱うべきもので,実体をコピーするのはなるたけ避けたいね
C++ では void f(const C &arg) って,可能ならば const と参照の縛りをできるだけいれるよね,余計なコンストラクタを走らせないために
K&R1 は教育的な配慮に優れた実装だと思うんだ‥
スタックに自動変数はあたりまえだよ‥static おじさん,じゃないつもりなんだが‥
構造体はポインタで扱うべきもので,実体をコピーするのはなるたけ避けたいね
C++ では void f(const C &arg) って,可能ならば const と参照の縛りをできるだけいれるよね,余計なコンストラクタを走らせないために
K&R1 は教育的な配慮に優れた実装だと思うんだ‥
553デフォルトの名無しさん
2017/04/02(日) 14:13:23.32ID:SQNmFUeK SOCKADDRが一言
>>553
手元のソースをみると
clientSocket = accept(serverSocket, (LPSOCKADDR)&clientSockAddr, &addrLen);
とか
if (connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr)) == SOCKET_ERROR) {
とか,構造体のポインタを渡しているね
由緒正しき Berkeley socket では,構造体をコピーするなんて教育的ではない書き方は許していないよ
手元のソースをみると
clientSocket = accept(serverSocket, (LPSOCKADDR)&clientSockAddr, &addrLen);
とか
if (connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr)) == SOCKET_ERROR) {
とか,構造体のポインタを渡しているね
由緒正しき Berkeley socket では,構造体をコピーするなんて教育的ではない書き方は許していないよ
555デフォルトの名無しさん
2017/04/02(日) 17:31:42.61ID:QFdfGGyb つまり>>553はK&Rおじさんにも劣る存在
556デフォルトの名無しさん
2017/04/02(日) 18:21:59.15ID:XkKG9LQx K&R1 おじさん,と
K&R2 おじさん
は区別したまえ,若造
K&R2 おじさん
は区別したまえ,若造
557デフォルトの名無しさん
2017/04/02(日) 19:26:19.28ID:QFdfGGyb どっちも時代遅れの老人でしょ
K&Rなんて昔存在したという噂でしか知らない
万葉集とか古事記みたいなもの?
K&Rなんて昔存在したという噂でしか知らない
万葉集とか古事記みたいなもの?
558デフォルトの名無しさん
2017/04/02(日) 20:22:15.39ID:II71H9Zi func1(a, b)
int a;
long b;
{
}
int a;
long b;
{
}
559デフォルトの名無しさん
2017/04/02(日) 22:22:37.63ID:JMz4l+Qd > &destSockAddr,
> sizeof(destSockAddr)
由緒正しきBerkeley Socketも昔はこういう書き方したな
コイツは進歩が20年前で止まってるのか
今この書き方する奴は死刑でいい
> sizeof(destSockAddr)
由緒正しきBerkeley Socketも昔はこういう書き方したな
コイツは進歩が20年前で止まってるのか
今この書き方する奴は死刑でいい
560デフォルトの名無しさん
2017/04/02(日) 23:11:21.74ID:zmcqSa2a 便乗で申し訳ないが、値渡し、参照渡し、ポインタ渡し、の話で
ポインタ渡しといっても、C++の場合はナマポは嫌われて、スマポを使いましょう
ってことになっていると思うんだけど、これはどう渡すのが普通?
スマポを値渡しするのか、参照渡しするのか
はたまたスマポを剥いで、ナマポで渡すのか
個人的に統一しきれないっつーか
所有権やら生存期間やらリソース管理やらが関係してくるなら
スマポで渡すI/Fじゃないとまずいだろうし
逆にそういうのが関係ないなら、スタック上の自動変数を渡したいとかも考えると
ナマポで渡すI/Fのほうが都合が良かったり、どーなんだろ
一度ナマポに戻すと二度とshared_ptrに変換できないって制限がね
言語側でなんとかせずに、ライブラリで解決しようとした弊害かな
ちょうどよいバカよけなんかも知らんが
ポインタ渡しといっても、C++の場合はナマポは嫌われて、スマポを使いましょう
ってことになっていると思うんだけど、これはどう渡すのが普通?
スマポを値渡しするのか、参照渡しするのか
はたまたスマポを剥いで、ナマポで渡すのか
個人的に統一しきれないっつーか
所有権やら生存期間やらリソース管理やらが関係してくるなら
スマポで渡すI/Fじゃないとまずいだろうし
逆にそういうのが関係ないなら、スタック上の自動変数を渡したいとかも考えると
ナマポで渡すI/Fのほうが都合が良かったり、どーなんだろ
一度ナマポに戻すと二度とshared_ptrに変換できないって制限がね
言語側でなんとかせずに、ライブラリで解決しようとした弊害かな
ちょうどよいバカよけなんかも知らんが
561デフォルトの名無しさん
2017/04/02(日) 23:13:25.39ID:6tq4Ne3Z 参照一択
562デフォルトの名無しさん
2017/04/02(日) 23:24:57.32ID:xNqaI0VS >スマポを値渡しするのか、参照渡しするのか
>はたまたスマポを剥いで、ナマポで渡すのか
スマポの値渡しと生保は使い分けが必要だが、スマポの参照渡しだけはアホの所業。
とスコットメイヤーが言っていたような
>はたまたスマポを剥いで、ナマポで渡すのか
スマポの値渡しと生保は使い分けが必要だが、スマポの参照渡しだけはアホの所業。
とスコットメイヤーが言っていたような
563デフォルトの名無しさん
2017/04/02(日) 23:43:46.05ID:yhAnz0vw >>560
shared_ptrはその名の通り所有権を共有する場合のみ使うもの
で、そういう場合は値渡しでもいいよ。中でmoveすれば
所有権を共有しないなら、nullptrを許容するならナマポそうじゃないなら参照
あんまり無いけど所有権を渡した先に移動させるならunique_ptr
shared_ptrはその名の通り所有権を共有する場合のみ使うもの
で、そういう場合は値渡しでもいいよ。中でmoveすれば
所有権を共有しないなら、nullptrを許容するならナマポそうじゃないなら参照
あんまり無いけど所有権を渡した先に移動させるならunique_ptr
564デフォルトの名無しさん
2017/04/02(日) 23:58:32.77ID:TsXu0WT4 所有権渡したくないならunique_ptrで持っている呼び出し元がgetでナマポを渡すかdereferenceして参照渡すかだな
565デフォルトの名無しさん
2017/04/03(月) 00:00:55.90ID:Jbp2gIKE ナマポで渡してもshared_ptrを再取得する方法はあるだろ
まあ前提がいるが
まあ前提がいるが
566デフォルトの名無しさん
2017/04/03(月) 00:34:15.74ID:qQvnlfYK うむむ、なるほど
ポインタらしき物にこれだけ多くの種類があってI/Fで縛ってしまうのは
一見面倒そうで、最近の流行というか静的型言語的には
型安全と見るべきなんだろうかしら
安易なGC言語より良いかもしれん、単純に情報量は多い
また一つC++が好きになった
うっかり循環参照したら怖いとか
コンパイラのバージョン違いでSTLやmallocの実装に
差異が有ることを前提に組まなきゃならないとか、玉にキズもあるけれど
ポインタらしき物にこれだけ多くの種類があってI/Fで縛ってしまうのは
一見面倒そうで、最近の流行というか静的型言語的には
型安全と見るべきなんだろうかしら
安易なGC言語より良いかもしれん、単純に情報量は多い
また一つC++が好きになった
うっかり循環参照したら怖いとか
コンパイラのバージョン違いでSTLやmallocの実装に
差異が有ることを前提に組まなきゃならないとか、玉にキズもあるけれど
>>559
C/C++ で生書きするなら今もおなじだよ
C/C++ で生書きするなら今もおなじだよ
568デフォルトの名無しさん
2017/04/03(月) 07:40:50.83ID:dyU+EMvQ 型に対してじゃないのに括弧つけるの?
569デフォルトの名無しさん
2017/04/03(月) 08:48:24.23ID:WaUkCV9r そこはインデントや{}の位置が人によって違ったりするアレだろ
>>557
K&R2 は C89 準拠だよ‥C89 が時代遅れだというけれども,いろんなことは C89 のときからやってきていて,C99 で追認された,というだけだよ
K&R2 は C89 準拠だよ‥C89 が時代遅れだというけれども,いろんなことは C89 のときからやってきていて,C99 で追認された,というだけだよ
571デフォルトの名無しさん
2017/04/03(月) 20:29:22.04ID:5hra1L5C573571
2017/04/03(月) 22:02:42.26ID:ldINtwle >>572
つまりお主(K&R1おじさん)は
K&R2おじさんが自分と一緒くたにされることを
申し訳ないと感じてるのだな!?
(>543)
> それ,K&R1 から堕落したよね
(>550)
> サイズが無限にのびるかもしれないものをコピーするなんてだめだよ
(>552)
> K&R1 は教育的な配慮に優れた実装だと思うんだ‥
つまりお主(K&R1おじさん)は
K&R2おじさんが自分と一緒くたにされることを
申し訳ないと感じてるのだな!?
(>543)
> それ,K&R1 から堕落したよね
(>550)
> サイズが無限にのびるかもしれないものをコピーするなんてだめだよ
(>552)
> K&R1 は教育的な配慮に優れた実装だと思うんだ‥
574デフォルトの名無しさん
2017/04/03(月) 22:14:40.64ID:Vb9tETQW voidを返す関数には感心したな
生成されるコードは大して変わらないかも知れんけど
生成されるコードは大して変わらないかも知れんけど
575デフォルトの名無しさん
2017/04/04(火) 01:00:11.73ID:jC2xfRDP 関数プロトタイプを除けば、K&R1で十分かもしれないな
voidを返す関数? int でいいんだよ
voidを返す関数? int でいいんだよ
576デフォルトの名無しさん
2017/04/04(火) 15:11:19.04ID:AeH3x9f/ 戻り値をどうするかはcallerの勝手だからな
578デフォルトの名無しさん
2017/04/04(火) 20:27:50.00ID:/PIYb7TP int funca01(...);
int funca02(...);
int funca03(...);
int funca02(...);
int funca03(...);
579デフォルトの名無しさん
2017/04/04(火) 23:08:17.42ID:YUY8Mb54 老人は意味とか概念を理解しようとしないから嫌
「bool? intでいいだろ」
「forループ?本質はgotoと同じ」
「enumなんてintでいいだろ」
ホントもう存在が害悪
「bool? intでいいだろ」
「forループ?本質はgotoと同じ」
「enumなんてintでいいだろ」
ホントもう存在が害悪
580デフォルトの名無しさん
2017/04/05(水) 00:33:27.19ID:DVg/5L4N581デフォルトの名無しさん
2017/04/05(水) 02:38:54.31ID:ZJf7oEgw582デフォルトの名無しさん
2017/04/05(水) 04:30:52.52ID:ni2ET+sb 奴らは#defineだ
583デフォルトの名無しさん
2017/04/05(水) 08:14:48.69ID:Bh5NPBNH マジックナンバー直書きでしょ
584デフォルトの名無しさん
2017/04/05(水) 08:19:06.54ID:qVk1sCwA K&Rだと〜
c89だと〜
過去の異物がまだ現役だと信じて話してけるのがうざい
c89だと〜
過去の異物がまだ現役だと信じて話してけるのがうざい
585デフォルトの名無しさん
2017/04/05(水) 09:06:55.68ID:ncDYJBnp それ言うならC自体が。
いまさらC++と互換性のないCを選ぶ理由がない。
いまさらC++と互換性のないCを選ぶ理由がない。
586デフォルトの名無しさん
2017/04/05(水) 10:35:04.67ID:k0RY104y >>585
C++と互換性のないCってどんなの?
C++と互換性のないCってどんなの?
587デフォルトの名無しさん
2017/04/05(水) 19:40:11.14ID:IM5122PI ベターC的な所全般だな
範囲forとか2進リテラルとかスレッドライブラリとか参照とか
Cにはnullptrすら無いし細かいところでは条件演算子が右辺値とか
ようするに別言語
オーバーロードに対するtgmathとかもう糞の臭いしかしない
範囲forとか2進リテラルとかスレッドライブラリとか参照とか
Cにはnullptrすら無いし細かいところでは条件演算子が右辺値とか
ようするに別言語
オーバーロードに対するtgmathとかもう糞の臭いしかしない
>>580
「K&R1 は構造体は基本的にポインタでしか扱えない」制限なんて,使ってもいなかったらわからないだろう?
「K&R1 は構造体は基本的にポインタでしか扱えない」制限なんて,使ってもいなかったらわからないだろう?
590580
2017/04/05(水) 20:02:06.85ID:DVg/5L4N え?Qちゃんてサンデープログラマじゃないの?
職業プログラマでもないし
プログラミング暦せいぜい10年未満だと思ってた
職業プログラマでもないし
プログラミング暦せいぜい10年未満だと思ってた
>>579
>「forループ?本質はgotoと同じ」
そんなことはいわないとおもうよ,K&R1 の時代から for はあるしね
きがつくと for(;;) { } と break だけで書いてたりするのはあるかもね,while 使いにくいとか,do while なんかマクロの中でしかつかわない,とかさ
enum?
#define でいいとおもうよ‥
>「forループ?本質はgotoと同じ」
そんなことはいわないとおもうよ,K&R1 の時代から for はあるしね
きがつくと for(;;) { } と break だけで書いてたりするのはあるかもね,while 使いにくいとか,do while なんかマクロの中でしかつかわない,とかさ
enum?
#define でいいとおもうよ‥
593デフォルトの名無しさん
2017/04/05(水) 21:26:45.75ID:Kw8eDt7v ニートじゃ分からんことも多いのでは
595デフォルトの名無しさん
2017/04/05(水) 22:10:26.67ID:mGFW5fgT そういうこと言ってるとそのうち技術についていけなくなるよ
596デフォルトの名無しさん
2017/04/05(水) 22:22:23.34ID:ncDYJBnp C99やC11って、新しい技術とかそういうんじゃないじゃん。
597デフォルトの名無しさん
2017/04/05(水) 22:40:44.77ID:mGFW5fgT 規格
598デフォルトの名無しさん
2017/04/06(木) 10:47:58.81ID:jz0x7tjm 企画ものは好きじゃないからな
599デフォルトの名無しさん
2017/04/06(木) 16:35:26.64ID:w+UX2Wix ころころ変わるんだから最新もクソも無いわけだが
pakomamaはガチらしいな
pakomamaはガチらしいな
601デフォルトの名無しさん
2017/04/06(木) 20:16:13.94ID:kFToYptL まず、C#のasyncだのawaitだのはC++にも欲しいところ
というか、取り入れる方向で議論していたような
どのみちQZには使いこなせない機能だから知らなくてもよいけど
知れば発狂することだろう
というか、取り入れる方向で議論していたような
どのみちQZには使いこなせない機能だから知らなくてもよいけど
知れば発狂することだろう
603デフォルトの名無しさん
2017/04/06(木) 22:33:11.66ID:Ao1zg6OQ >>601
coroutineの事なら根本的な所が違うから勘違いしないようにな
coroutineの事なら根本的な所が違うから勘違いしないようにな
604デフォルトの名無しさん
2017/04/07(金) 20:08:34.35ID:cdWiLUH2 馬鹿の特長:目的/機能の違いと実現するための実装の違いの区別がつかない
605デフォルトの名無しさん
2017/04/08(土) 12:56:12.29ID:TFmwEDa6 C#のawaitはGUIのスレッドを意識出来るので有用だが
C++のawaitはただ裏で走らせるだけの機能的には劣化版な気がしてならない
C++のawaitはただ裏で走らせるだけの機能的には劣化版な気がしてならない
606デフォルトの名無しさん
2017/04/08(土) 13:14:20.88ID:bfo0YVHI >>605
c++で標準的なgui使うとすると何になるの?
c++で標準的なgui使うとすると何になるの?
607デフォルトの名無しさん
2017/04/08(土) 13:49:52.49ID:xnWSKOe7 >>605
そりゃ C++ と C# のポリシーの違いだろ
そりゃ C++ と C# のポリシーの違いだろ
608デフォルトの名無しさん
2017/04/09(日) 22:32:13.26ID:nTEmq1X3 C使ってる人で変数宣言を途中に書く人いる?
やめた方がいい?
やめた方がいい?
609デフォルトの名無しさん
2017/04/09(日) 23:00:21.55ID:gthRNL4S むしろそうして欲しいかな
勿論ブロックスコープは意識してる前提で
勿論ブロックスコープは意識してる前提で
610デフォルトの名無しさん
2017/04/14(金) 09:11:56.63ID:ezi5K97R 初期のCはブロック先頭しかコンパイルが通らない
コンストラクタも型推論もないのに途中に置くメリットが少ない
初期化漏れというモンスターの隠れ家になりやすい
コンストラクタも型推論もないのに途中に置くメリットが少ない
初期化漏れというモンスターの隠れ家になりやすい
611デフォルトの名無しさん
2017/04/14(金) 10:33:55.73ID:L6e5ZQwW 一応Cで書くときは関数ブロック直後に書いてるけど、それはそれでforで使うiとかを使い回す事になるから、C++みたくプログラマの良識を信じて(ブロックを意識して変数宣言すると信じて)、好きな場所で宣言出来た方が正解なんだろうな。
612デフォルトの名無しさん
2017/04/14(金) 10:35:17.63ID:L6e5ZQwW 出来た方がと言うか、今は出来るんだから、した方が正解に訂正。
613デフォルトの名無しさん
2017/04/14(金) 12:59:25.70ID:Hdztr2ik 出来ることと乱用していいことはイコールでない
一瞬だけの一時変数を直前で宣言するのならありだけど
関数全体で使うなら頭で宣言すべきだし、そもそも中間で宣言するような長い関数は
短くなるよう見直すべき
一瞬だけの一時変数を直前で宣言するのならありだけど
関数全体で使うなら頭で宣言すべきだし、そもそも中間で宣言するような長い関数は
短くなるよう見直すべき
614デフォルトの名無しさん
2017/04/14(金) 13:04:43.28ID:xSRtCFhF 魔法の言葉
ケースバイケース
ケースバイケース
615デフォルトの名無しさん
2017/04/14(金) 19:32:18.15ID:UiWlchtO スコープは可能な限り狭く
おじいちゃんの遺言
おじいちゃんの遺言
616デフォルトの名無しさん
2017/04/14(金) 19:38:55.23ID:PNQsiXg9 初期化漏れはブロック先頭でしかかけない方が起こしやすいだろう
長い範囲で使う変数でも、変数ははじめて使うところで宣言した方が分かりやすいしバグも減る。
長い範囲で使う変数でも、変数ははじめて使うところで宣言した方が分かりやすいしバグも減る。
617デフォルトの名無しさん
2017/04/14(金) 20:04:35.98ID:Z/bjVn5R 初期化忘れ防止はどこで宣言したってあんま関係ないというか
大差ないだろうな実際
必要になった時点で宣言するってことでよいと思う
さもないと上手くいかない場合もあるし
いちいち使いもしない「ダミーの値」で初期化するのは馬鹿らしいし
余計にバグりそう
大差ないだろうな実際
必要になった時点で宣言するってことでよいと思う
さもないと上手くいかない場合もあるし
いちいち使いもしない「ダミーの値」で初期化するのは馬鹿らしいし
余計にバグりそう
618デフォルトの名無しさん
2017/04/14(金) 20:13:31.25ID:Z/bjVn5R auto result = func();
まぁこういう風にしたいわな
int result = 0;
・・・
result = func();
↑その「0」って初期化値は何なんですか、何を意味した「0」なんですか
では0の代わりに1で初期化したらどうなるんですか
この初期化値の意味は一体何なんですか
ってことになるしな
結局「0」とか「1」とかの初期化値はダミーでありプログラム上なんの意味もなかったりするし
逆に初期化値に意味がある場合もあるから余計にややこしくなる
bool flag = false;
if( func() )
{
flag = true;
}
これらを区別したいから必要になった個所で宣言に一票
まぁこういう風にしたいわな
int result = 0;
・・・
result = func();
↑その「0」って初期化値は何なんですか、何を意味した「0」なんですか
では0の代わりに1で初期化したらどうなるんですか
この初期化値の意味は一体何なんですか
ってことになるしな
結局「0」とか「1」とかの初期化値はダミーでありプログラム上なんの意味もなかったりするし
逆に初期化値に意味がある場合もあるから余計にややこしくなる
bool flag = false;
if( func() )
{
flag = true;
}
これらを区別したいから必要になった個所で宣言に一票
619デフォルトの名無しさん
2017/04/14(金) 21:45:43.28ID:spQE74XB 老人の「昔は良かった」を見て顔真っ赤にして論破しようとマジレス
みっともない
みっともない
620デフォルトの名無しさん
2017/04/14(金) 23:47:26.34ID:9eRQSDOY 必要なものを必要なときに宣言する
それだけの話
それだけの話
621デフォルトの名無しさん
2017/04/15(土) 09:16:54.52ID:RtikNDCG622デフォルトの名無しさん
2017/04/15(土) 09:26:22.77ID:Af1/s0zG もともとが
初期化忘れを防ぐためには関数の先頭で宣言〜
への反論だったからだぜ
初期化忘れを防ぐためには関数の先頭で宣言〜
への反論だったからだぜ
623デフォルトの名無しさん
2017/04/15(土) 09:41:32.48ID:RtikNDCG >622
日本語もわからないチンパンは無理して
コンピュータ使わなくても
祖国でオナニーしてればいいんだぜ
日本語もわからないチンパンは無理して
コンピュータ使わなくても
祖国でオナニーしてればいいんだぜ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★11 [樽悶★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- ひろゆき氏 高市首相の台湾有事発言 「日本が得たものあまりない。経済的なマイナスは明確に存在」 [冬月記者★]
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★5 [お断り★]
- Redditの外国人たち、なぜか日本の江戸時代の『五人組』システムに興味津々。めっちゃ↑付いてるのに日本人の俺が知らない😰 [718678614]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 置き配受け取り人さん、配達員に冷え冷えの飲み物を差し入れしネット大荒れ、ちょっとした善意なのにどうして😭 [152212454]
- 【悲報】高市政権、ホタテ輸出の支援検討 [834922174]
- 【悲報】秋元康「女性アイドルグループはもうオワコン。会いにいける男性アイドルグループを作る」 [455031798]
