次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part133
http://mevius.5ch.net/test/read.cgi/tech/1511509970/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part134
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-Q2eK)
2018/01/20(土) 09:05:42.21ID:mJKRg6iz0196デフォルトの名無しさん (ワッチョイ 9fcb-zxnT)
2018/02/17(土) 22:51:12.84ID:++v6vSjK0197デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/17(土) 22:52:19.16ID:YAgvIyFy0 頭悪いヤツが多様するハンガリアン
198デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/17(土) 22:54:25.25ID:YAgvIyFy0 嫌いだからハンガリアン意地でも使わなかった
dwやらszやらせっかくのフリーフォーマッとが台なしだよ
dwやらszやらせっかくのフリーフォーマッとが台なしだよ
199デフォルトの名無しさん (ワッチョイ bf0e-qi38)
2018/02/17(土) 22:59:56.16ID:Q4Uv6cZz0 フリーフォーマットはクソコードの温床ナリよ
200デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/17(土) 23:03:12.11ID:4SqFrjwY0 型を変えるたびに変数名も変えるのか
ごくろうやな
ごくろうやな
202デフォルトの名無しさん (ワッチョイ 9ff9-GHyv)
2018/02/17(土) 23:22:18.45ID:2kmwzB0g0 >>195
システムハンガリアンは弊害ばかりだろうけど、アプリケーションハンガリアンは適切に使えば有益だよ。
システムハンガリアンは弊害ばかりだろうけど、アプリケーションハンガリアンは適切に使えば有益だよ。
203デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/17(土) 23:25:09.87ID:4SqFrjwY0 mとかいらなくねってなって削ったら_から始まるようになった
204デフォルトの名無しさん (ワッチョイ 9fbd-RFe/)
2018/02/17(土) 23:38:55.74ID:u7LZaTzx0 データの属性としてサイズとか型そのものを明示したいときはシステムハンガリアンするしかないし、
よってWIN32APIがシステムハンガリアンを使って定義されるのは全く正しい
問題なのはアプリケーションハンガリアンすべきときと
システムハンガリアンすべきときが区別できない香具師が適当に使うと
被害甚大だということやがな…
よってWIN32APIがシステムハンガリアンを使って定義されるのは全く正しい
問題なのはアプリケーションハンガリアンすべきときと
システムハンガリアンすべきときが区別できない香具師が適当に使うと
被害甚大だということやがな…
205デフォルトの名無しさん (ワッチョイ d77f-T3WU)
2018/02/17(土) 23:41:05.97ID:YmD9lILj0 今時システムハンガリアンは無いだろ
20年前で時間が止まってるのかよ
20年前で時間が止まってるのかよ
206デフォルトの名無しさん (ワッチョイ 9fbd-RFe/)
2018/02/17(土) 23:42:44.53ID:u7LZaTzx0207デフォルトの名無しさん (ワッチョイ d77f-T3WU)
2018/02/17(土) 23:49:32.45ID:YmD9lILj0 ググればいいだろ
積極的批判
システムハンガリアンを使っているソースコードを修正してデータ型を変更した際、同時に変数名も変更するコストがかかる。変更を怠ると、たちまち不整合となり、保守の障害となるだけで一利もない。
C++やC#のような言語では型付けが存在するためにシステムハンガリアンを使用することによる利点はない[3]。
移植性を阻害する。
総称型、メタプログラミングとの相性が悪い。
消極的批判
いわゆる良書と呼ばれるようなC++本で、現在[いつ?]システムハンガリアンを採用している例が皆無。
かつてWindows API/MFCにおいてハンガリアンを全面的に採用していたMicrosoft自身が、.NET Frameworkではハンガリアンを禁止[1]している。
積極的批判
システムハンガリアンを使っているソースコードを修正してデータ型を変更した際、同時に変数名も変更するコストがかかる。変更を怠ると、たちまち不整合となり、保守の障害となるだけで一利もない。
C++やC#のような言語では型付けが存在するためにシステムハンガリアンを使用することによる利点はない[3]。
移植性を阻害する。
総称型、メタプログラミングとの相性が悪い。
消極的批判
いわゆる良書と呼ばれるようなC++本で、現在[いつ?]システムハンガリアンを採用している例が皆無。
かつてWindows API/MFCにおいてハンガリアンを全面的に採用していたMicrosoft自身が、.NET Frameworkではハンガリアンを禁止[1]している。
208デフォルトの名無しさん (ワッチョイ d7b3-hxII)
2018/02/17(土) 23:52:28.19ID:YEFSbrC50 申し訳ないがコピペディアからのウィキペはNG
209デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/17(土) 23:54:40.85ID:4SqFrjwY0 型なんてマウスオーバーなりすれば表示されるだろ
変数名に書いておかなきゃわからないとかメモ帳で書いてるのかよ
変数名に書いておかなきゃわからないとかメモ帳で書いてるのかよ
210はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/18(日) 00:10:56.39ID:OOIPfNvY0 >>190
デリータはポインタが指す先のリソースを後始末するのが仕事であって、
ポインタが無効になるという処理は unique_ptr の側でやってくれるので、
ヌルを代入する必要はない。
むしろ unique_ptr 内で管理しているものをデリータが勝手に弄るのは好ましくないので、
参照で受けるのはやめてさしあげろ。
私なりに仕様を読んでこの場合をエラーにする根拠は発見できなかったが、
エラーになってくれる方がありがたい場面だと思う。
デリータはポインタが指す先のリソースを後始末するのが仕事であって、
ポインタが無効になるという処理は unique_ptr の側でやってくれるので、
ヌルを代入する必要はない。
むしろ unique_ptr 内で管理しているものをデリータが勝手に弄るのは好ましくないので、
参照で受けるのはやめてさしあげろ。
私なりに仕様を読んでこの場合をエラーにする根拠は発見できなかったが、
エラーになってくれる方がありがたい場面だと思う。
211デフォルトの名無しさん (ワッチョイ d7f2-T3WU)
2018/02/18(日) 00:16:38.53ID:Ct2k6iqr0 デリータに渡されるのは左辺値と限らないからだろう。
212はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/18(日) 00:25:54.07ID:OOIPfNvY0 N3337 だと 516 ページの説明がデリータの要件だと思うんだけど、
デリータ d の型が D で ptr の型が unique_ptr<T, D>::pointer のとき式 d(ptr) が valid であることと書いてあって、
ptr が rvalue か lvalue かってのは特に指定がない。 (どこかに書いてあったりする?)
この説明で言ってる ptr が変数名なのだとしたら暗に lvalue とほのめかしてるようにも思えなくもないし、よくわからん。
わからんことは避けて通りたい。
デリータ d の型が D で ptr の型が unique_ptr<T, D>::pointer のとき式 d(ptr) が valid であることと書いてあって、
ptr が rvalue か lvalue かってのは特に指定がない。 (どこかに書いてあったりする?)
この説明で言ってる ptr が変数名なのだとしたら暗に lvalue とほのめかしてるようにも思えなくもないし、よくわからん。
わからんことは避けて通りたい。
213はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/18(日) 00:30:57.46ID:OOIPfNvY0 私なりの見解としては未定義だと思ってる。
未定義ならばやったらエラーになる方向にしてくれる方がありがたいという思い。
未定義ならばやったらエラーになる方向にしてくれる方がありがたいという思い。
214デフォルトの名無しさん (ブーイモ MM3b-zxnT)
2018/02/18(日) 00:35:36.09ID:ju8BsRCFM >>206
ABIにシステムハンガリアン関係ないだろ…
APIを指してるとして、呼び出し側はリファレンスマニュアルなりIDE機能なりを利用して引数の型情報も
システムハンガリアンが付いている仮引数名と同時に参照しているはずだよね?情報重複してるけど本当に必要?
仮引数名のシステムハンガリアンの有無に関わらず、APIのシグネチャは用意に変更してはならないものだけど、
そもそも仮引数名はシグネチャじゃないからシステムハンガリアンがついていたって何の保証にもならないよ?
ABIにシステムハンガリアン関係ないだろ…
APIを指してるとして、呼び出し側はリファレンスマニュアルなりIDE機能なりを利用して引数の型情報も
システムハンガリアンが付いている仮引数名と同時に参照しているはずだよね?情報重複してるけど本当に必要?
仮引数名のシステムハンガリアンの有無に関わらず、APIのシグネチャは用意に変更してはならないものだけど、
そもそも仮引数名はシグネチャじゃないからシステムハンガリアンがついていたって何の保証にもならないよ?
215はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/18(日) 00:51:32.90ID:OOIPfNvY0 重複する情報をコンパイラの支援なく一致させ続けることが出来るだろうか。 いや、できない。
って話よね。
まあ世の中にはそういうのを検査するツールとかもあるんだろうけどさぁ、
そういうツールを導入できる環境ならまともな IDE だって使えるだろう。
って話よね。
まあ世の中にはそういうのを検査するツールとかもあるんだろうけどさぁ、
そういうツールを導入できる環境ならまともな IDE だって使えるだろう。
216162 (マクド FF6b-xgEu)
2018/02/18(日) 08:06:35.40ID:F3zIry6ZF >>210
>>211
レスありがとうございます。
shared_ptrだと行けるのでなんかすればコンパイル通るのではないかと
思ったのですがだめなんですね〜。
普通に使う用とカスタムデリータに使う用と二種類用意してやり過ごしてみたいと思います。
template <class T>
inline void safe_release(T*& p) {
if (p) {
p->Release();
p = nullptr;
}
}
template <class T>
inline void custom_deleter(T* p) {
p->Release();
// p = nullptr; no meaning
}
>>211
レスありがとうございます。
shared_ptrだと行けるのでなんかすればコンパイル通るのではないかと
思ったのですがだめなんですね〜。
普通に使う用とカスタムデリータに使う用と二種類用意してやり過ごしてみたいと思います。
template <class T>
inline void safe_release(T*& p) {
if (p) {
p->Release();
p = nullptr;
}
}
template <class T>
inline void custom_deleter(T* p) {
p->Release();
// p = nullptr; no meaning
}
217デフォルトの名無しさん (ワッチョイ 9fbd-RFe/)
2018/02/18(日) 12:41:44.81ID:OWXn9djh0 >>207
藻前はレスをきちんと読んでいないのではないか
>システムハンガリアンを使っているソースコードを修正してデータ型を変更した際、同時に変数名も変更するコストがかかる。(>>207)
に直接対応する元レス>>206は、
>データの属性としてサイズとか型そのものを明示したいとき(>>204)
について述べているのでデータ型変更時のコストを言い立てても批判にならない
消極的批判については、アプリケーションハンガリアンすべきときと システムハンガリアンすべきときが
区別できない香具師の的外れな批判がクソウゼーからそうなったのかもしれん、
(ちな両者を区別できない香具師への警戒も>>204で言及済み
藻前はレスをきちんと読んでいないのではないか
>システムハンガリアンを使っているソースコードを修正してデータ型を変更した際、同時に変数名も変更するコストがかかる。(>>207)
に直接対応する元レス>>206は、
>データの属性としてサイズとか型そのものを明示したいとき(>>204)
について述べているのでデータ型変更時のコストを言い立てても批判にならない
消極的批判については、アプリケーションハンガリアンすべきときと システムハンガリアンすべきときが
区別できない香具師の的外れな批判がクソウゼーからそうなったのかもしれん、
(ちな両者を区別できない香具師への警戒も>>204で言及済み
218デフォルトの名無しさん (ワッチョイ 9fbd-RFe/)
2018/02/18(日) 12:42:38.82ID:OWXn9djh0 >>214
十分賢いIDEが人間のミスを完璧に排除してくれるんならそうかもしれんが
システムハンガリアンをしてはいけないという積極的理由にはやはりならないのであった
それとも「間違ったコードは間違って見えるようにする 」(>>185)の効能を全否定する?
APIの定義は変わらなくとも、それを利用するソースコードがころころ変わり得るわけで、
byStrLength
にある日だれかがDWORD型の値を突っ込んだとしたら…
こういうケースを考えたら、「接頭辞を見ればデータ内容の属性がワカルというメリット(>>185)」は
ありえないぐらい賢いIDEでも使わないと他に代え難いと思うがどうか、
>>198
>嫌いだからハンガリアン意地でも使わなかった
おk ようやく建設的な議論に着手できる、
十分賢いIDEが人間のミスを完璧に排除してくれるんならそうかもしれんが
システムハンガリアンをしてはいけないという積極的理由にはやはりならないのであった
それとも「間違ったコードは間違って見えるようにする 」(>>185)の効能を全否定する?
APIの定義は変わらなくとも、それを利用するソースコードがころころ変わり得るわけで、
byStrLength
にある日だれかがDWORD型の値を突っ込んだとしたら…
こういうケースを考えたら、「接頭辞を見ればデータ内容の属性がワカルというメリット(>>185)」は
ありえないぐらい賢いIDEでも使わないと他に代え難いと思うがどうか、
>>198
>嫌いだからハンガリアン意地でも使わなかった
おk ようやく建設的な議論に着手できる、
219デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/18(日) 13:01:54.53ID:Tc3/Tap60 あり得ないくらいバカなプログラマのことなんか考慮してない
220デフォルトの名無しさん (ワッチョイ d7b3-hxII)
2018/02/18(日) 13:02:14.72ID:hSV7DJYb0 マウスオーバーで変数の型を確認できたり、縮小変換に警告を出してくれたりする程度のありふれた機能が、ありえないぐらい賢いとな
お前さんはメモ帳でコーディングしてるのか
お前さんはメモ帳でコーディングしてるのか
>>220
emacs にもそんな機能がほしいと思うことがあります
emacs にもそんな機能がほしいと思うことがあります
222デフォルトの名無しさん (スッップ Sdbf-0Jtz)
2018/02/18(日) 13:20:53.92ID:y51LwXumd システムハンガリアンでミスを減らせるなんて事はない
むしろ害悪
むしろ害悪
223デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/18(日) 13:27:53.30ID:Tc3/Tap60224はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/18(日) 13:30:05.77ID:OOIPfNvY0225デフォルトの名無しさん (ワッチョイ 378a-TkRA)
2018/02/18(日) 13:38:55.48ID:R2RwPqEs0 今時システムハンガリアンを使うやつはあり得ないくらいのバカだということが決定しました
226デフォルトの名無しさん (ブーイモ MM3b-zxnT)
2018/02/18(日) 13:41:43.01ID:IMbK2zhKM >>218
間違ったコードは間違ったように見えるようにする、について、
あなたが指し示した引用元が言及してるのはアプリケーションハンガリアンについてなんだけど…
システムハンガリアンについては否定的意見。
ちゃんと読んだの?
間違ったコードは間違ったように見えるようにする、について、
あなたが指し示した引用元が言及してるのはアプリケーションハンガリアンについてなんだけど…
システムハンガリアンについては否定的意見。
ちゃんと読んだの?
228デフォルトの名無しさん (ブーイモ MM3b-zxnT)
2018/02/18(日) 14:15:44.65ID:IMbK2zhKM >>218
APIの仮引数にシステムハンガリアンをつけたことで、間違ったAPI呼び出しが間違ったように見えるのはいつ?
APIのリファレンスなり宣言文なりを自分のコードと見比べたときでしょ?その時必ず型情報も見てるよね?情報重複してるよ?
あとIDEが自動でミスを排除してくれるなんて書いてないよ?ちゃんと読んで
APIの仮引数にシステムハンガリアンをつけたことで、間違ったAPI呼び出しが間違ったように見えるのはいつ?
APIのリファレンスなり宣言文なりを自分のコードと見比べたときでしょ?その時必ず型情報も見てるよね?情報重複してるよ?
あとIDEが自動でミスを排除してくれるなんて書いてないよ?ちゃんと読んで
229デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/18(日) 15:46:49.02ID:Tc3/Tap60 入れる変数の型と引数の型を確認しない奴とかいるのか
暗黙の型変換は警告を出せばいいし
どうしても見落とすのならコンパイルエラーにしてしまえばいい
あとメンバ変数もテキストの色を変えればいいからm_もいらない
暗黙の型変換は警告を出せばいいし
どうしても見落とすのならコンパイルエラーにしてしまえばいい
あとメンバ変数もテキストの色を変えればいいからm_もいらない
230デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/18(日) 16:01:36.00ID:dLlRK2Wa0 m_はホント見苦しい
231デフォルトの名無しさん (ワッチョイ bfe7-JyXB)
2018/02/18(日) 20:07:07.34ID:8oVyjimH0 m_だけならまだ我慢できるけど
this->を必ず付けるルールと併用するのは本当にやめろどっちかにしろ
this->を必ず付けるルールと併用するのは本当にやめろどっちかにしろ
232デフォルトの名無しさん (ワッチョイ 9fb9-T3WU)
2018/02/18(日) 20:15:52.43ID:eae4wPFh0 > this->を必ず付けるルール
破門だろ
C++使うなそんなボケどもは
破門だろ
C++使うなそんなボケどもは
233デフォルトの名無しさん (ワッチョイ 9f12-pjg9)
2018/02/18(日) 21:14:42.68ID:SQcbDAgv0 ちげえんだよなぁ
thisというキーワードが存在してるから、その存在そのものが、それを書かねばならないような強制力を産み出してる
「存在するが、書かなくてもいい」っていうどっちつかずが、一番論争になる
その反対が「存在しないから書けない」だ
これだと単純明快だ
なんせ、書けない
「書くべきか書かざるべきか」のどーーーでもいい二択に迫られると、とたんに宗教になる
thisというキーワードが存在してるから、その存在そのものが、それを書かねばならないような強制力を産み出してる
「存在するが、書かなくてもいい」っていうどっちつかずが、一番論争になる
その反対が「存在しないから書けない」だ
これだと単純明快だ
なんせ、書けない
「書くべきか書かざるべきか」のどーーーでもいい二択に迫られると、とたんに宗教になる
234デフォルトの名無しさん (ワッチョイ 9fb9-T3WU)
2018/02/18(日) 21:16:52.71ID:eae4wPFh0 キーワードが存在するのと実体が存在することの違いがそんなに大事なのか?
じゃあvtableのキーワードが存在しないことを、おまえはどう考えている?
じゃあvtableのキーワードが存在しないことを、おまえはどう考えている?
235デフォルトの名無しさん (ワッチョイ bf37-ytZF)
2018/02/18(日) 21:33:09.71ID:Pbt6vSqU0 >>231
オケツに_をつけてますわ
オケツに_をつけてますわ
236デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/18(日) 21:33:14.46ID:dLlRK2Wa0 おれがそのソースを引き継いだらまず初めにやることは一つ
「this->」から「」への全ソース一括置換
「this->」から「」への全ソース一括置換
237デフォルトの名無しさん (ワッチョイ d7f2-T3WU)
2018/02/18(日) 21:56:25.56ID:Ct2k6iqr0 「m_」はダメで「_」ならいいってのはなんというか、合理的な理由よりも感覚・感情的なものかね。
this-> つけるほうが分かりやすくていいと思うのですが、変てこな接尾辞・接頭辞よりも
239デフォルトの名無しさん (ワッチョイ d77f-T3WU)
2018/02/18(日) 22:00:36.01ID:tWqaO5mz0 m_xxx も xxx_ もなんの保証にもならんからな
this->は必ずメンバになるけど
this->は必ずメンバになるけど
240デフォルトの名無しさん (ワッチョイ 9f4c-C9DI)
2018/02/18(日) 22:37:59.28ID:UEE7OeWn0 _はグーグルスタイルの圧力
241デフォルトの名無しさん (ワッチョイ ff76-BAP3)
2018/02/18(日) 22:42:10.00ID:WjKwYRHz0 余計な命名規約を作るくらいなら言語機能を使った方が良いわな
this->派だわ
this->派だわ
242デフォルトの名無しさん (ワッチョイ bf0e-qi38)
2018/02/18(日) 23:21:23.43ID:AjuHfv4B0 thisで明示した方が所在がハッキリして良いナリ
当職は名前空間もusingせずに明示しろ派ナリ
安易な省略はタイプ数を減らすという軽微なメリットと引き換えに可読性を落としケアレスミスを誘発するという恐ろしいデメリットを孕むナリ
当職は名前空間もusingせずに明示しろ派ナリ
安易な省略はタイプ数を減らすという軽微なメリットと引き換えに可読性を落としケアレスミスを誘発するという恐ろしいデメリットを孕むナリ
243デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/19(月) 00:00:39.93ID:hDVR9PRD0244デフォルトの名無しさん (ワッチョイ ff8a-NmL4)
2018/02/19(月) 00:14:25.92ID:o8qstbSZ0 _付けるなら変数の後ろだろ
245デフォルトの名無しさん
2018/02/19(月) 00:18:14.94 C/C++なら必然的に末尾に付けるしかない
先頭に_付けるような情弱は死ねばいい
Perl/Pythonだと先頭に付けるけどな
先頭に_付けるような情弱は死ねばいい
Perl/Pythonだと先頭に付けるけどな
246デフォルトの名無しさん (ワッチョイ 17c3-T3WU)
2018/02/19(月) 00:42:17.66ID:SSx66hQd0 やらんけど、前一つなら規約には引っかからないんじゃなかったけ
247デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/19(月) 00:57:15.60ID:hDVR9PRD0 未定義なのは
_始まりでグローバルスコープにあるもの
_始まりでアルファベットの大文字が続くもの全て
__で始まるもの全て
1番目の_始まりなだけならローカル変数、引数、メンバでは予約されていないので使ってもよい
_始まりでグローバルスコープにあるもの
_始まりでアルファベットの大文字が続くもの全て
__で始まるもの全て
1番目の_始まりなだけならローカル変数、引数、メンバでは予約されていないので使ってもよい
248はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/19(月) 01:15:36.25ID:gMMBYzvP0249はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/19(月) 01:20:40.79ID:gMMBYzvP0250デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)
2018/02/19(月) 02:05:55.66ID:hDVR9PRD0 コーディング規約はうろ覚えだけど自由度の高いBoostスタイルを薦める
publicな識別子はstdに合わせて小文字スネークケース
マクロはBOOST_から始める
インデントはスペース、一行の文字数は80文字を推奨
意味のある名前を付けることを推奨
ファイル構成に関するもの
その他細々としたもの
ライブラリごとのローカルルールがある場合もある
あとは自由
thisを付けろだとか改行の仕方だとかは一切書かれてない
publicな識別子はstdに合わせて小文字スネークケース
マクロはBOOST_から始める
インデントはスペース、一行の文字数は80文字を推奨
意味のある名前を付けることを推奨
ファイル構成に関するもの
その他細々としたもの
ライブラリごとのローカルルールがある場合もある
あとは自由
thisを付けろだとか改行の仕方だとかは一切書かれてない
251デフォルトの名無しさん (ワッチョイ bf0e-qi38)
2018/02/19(月) 02:37:36.58ID:SEa8F8NC0 >>248-249
お互いにマナーを守る世界は過ごしやすいがマナーの厳守を要求し出すと途端に息苦しくなるナリ
自分にも他人にも読み易いコードを書こうという気遣いが見て取れるなら細かく突っ込んだりはしないナリ
お互いにマナーを守る世界は過ごしやすいがマナーの厳守を要求し出すと途端に息苦しくなるナリ
自分にも他人にも読み易いコードを書こうという気遣いが見て取れるなら細かく突っ込んだりはしないナリ
252デフォルトの名無しさん (ワッチョイ ff3f-T3WU)
2018/02/19(月) 05:40:18.76ID:wBFQMwB50 this->で必ずメンバというやつら
じゃあ必ずブロック内変数という表記もしたらどうだ
じゃあ必ずブロック内変数という表記もしたらどうだ
253デフォルトの名無しさん (アウアウアー Sa4f-rtnb)
2018/02/19(月) 12:45:29.69ID:yTAVcy/Ya 使うライブラリや開発環境の内部のスタイルに合わせるけどな。
派生クラスとかAPIのラッパークラスとか作り始めると、
どうしても内部の書き方に合わせておいた方が読みやすいし。
今でもWin32とかMFCでやることもあるけど、
そのときはm_とかpとかhとかdwとかバンバンつける。
派生クラスとかAPIのラッパークラスとか作り始めると、
どうしても内部の書き方に合わせておいた方が読みやすいし。
今でもWin32とかMFCでやることもあるけど、
そのときはm_とかpとかhとかdwとかバンバンつける。
254はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-T3WU)
2018/02/19(月) 13:19:17.15ID:gMMBYzvP0 使う側の都合に合わせろよ。 ラップしてるのに中身のスタイルが漏れてるんじゃラップの甲斐がなくね?
中身を知ってる人がちょっとした便利のためだけに薄いラッパを作る場合ならそういう選択もあるだろうけど。
中身を知ってる人がちょっとした便利のためだけに薄いラッパを作る場合ならそういう選択もあるだろうけど。
255デフォルトの名無しさん (ワッチョイ 9f9d-MriG)
2018/02/19(月) 14:36:30.11ID:00nJVfHA0 コンバータにあわせろよ。C#で作ってコンバータかけた方が綺麗スッキリするんだから。
256デフォルトの名無しさん (ドコグロ MMcb-dLOu)
2018/02/19(月) 19:36:41.65ID:2cNNs3G6M >>253
そりゃAPIに渡す構造体でdwSizeとか使われてたらそこだけは合わせざるを得ないけど自分のコードスタイルを合わせる必要はないだろ
そりゃAPIに渡す構造体でdwSizeとか使われてたらそこだけは合わせざるを得ないけど自分のコードスタイルを合わせる必要はないだろ
257デフォルトの名無しさん (ワッチョイ 9fbd-RFe/)
2018/02/19(月) 20:29:38.46ID:czaD+lHv0 Windows メインで作業されている方で、
valgrind を併用している方はおられませんか?
もしよろしければ使用感をお聞かせいただけませんか
operator new()/operator delete() 乗っ取りデバッグに限界を感じてしまっている状況です
(cl や bcc32/bcc32c/bcc64 では new/delete 乗っ取りができません)
いや、さっさと入れればいいのですが、仮想環境とかよくわからないし…Vine Linux 以来触ってないし…
valgrind を併用している方はおられませんか?
もしよろしければ使用感をお聞かせいただけませんか
operator new()/operator delete() 乗っ取りデバッグに限界を感じてしまっている状況です
(cl や bcc32/bcc32c/bcc64 では new/delete 乗っ取りができません)
いや、さっさと入れればいいのですが、仮想環境とかよくわからないし…Vine Linux 以来触ってないし…
259デフォルトの名無しさん (ワッチョイ 974f-4dOP)
2018/02/21(水) 01:13:14.52ID:wPLJFyuu0 windowsならapplication verifier使えば?
260デフォルトの名無しさん (ワッチョイ 1768-xgEu)
2018/02/21(水) 09:49:28.54ID:8k15W99L0 以下のURLのプログラムでSFINAEを試してみていて
https://wandbox.org/permlink/LqKmn50PaPbtohs5
BOOST_TTI_HAS_MEMBER_FUNCTIONを使えば
has_funcというメタ関数を使わずに済んで、短くできないかと試行錯誤中なのですが
うまく行きません。
どうやったらビルドが通るようになるでしょうか?
https://wandbox.org/permlink/LqKmn50PaPbtohs5
BOOST_TTI_HAS_MEMBER_FUNCTIONを使えば
has_funcというメタ関数を使わずに済んで、短くできないかと試行錯誤中なのですが
うまく行きません。
どうやったらビルドが通るようになるでしょうか?
261デフォルトの名無しさん (ワッチョイ 9fa2-T3WU)
2018/02/21(水) 18:31:01.90ID:8+abUSIR0 まずはそのうまく行かないコードを示したら?
262片山博文MZ ◆T6xkBnTXz7B0 (スププ Sdbf-ZgEC)
2018/02/21(水) 19:26:19.92ID:UifE8nP3d263260 (マクド FF6b-xgEu)
2018/02/21(水) 19:34:37.06ID:EmINyJBAF すみません、BOOST_TTI_HAS_MEMBER_FUNCTIONを使って短くする以前に元々が間違っていました。
以下の3つでオーバーロードしたかったのでした。
・funcというメンバ関数を持つダブルポインタ
・funcというメンバ関数を持たないダブルポインタ
・それ以外
それで思ったのですが多分、Boost.TTIライブラリで
〇〇というメンバ関数を持つクラス、を識別するメタ関数は作れても
〇〇というメンバ関数を持つクラスのダブルポインタ、は無理な気がしてきました。
一旦諦めようと思います。
以下の3つでオーバーロードしたかったのでした。
・funcというメンバ関数を持つダブルポインタ
・funcというメンバ関数を持たないダブルポインタ
・それ以外
それで思ったのですが多分、Boost.TTIライブラリで
〇〇というメンバ関数を持つクラス、を識別するメタ関数は作れても
〇〇というメンバ関数を持つクラスのダブルポインタ、は無理な気がしてきました。
一旦諦めようと思います。
264260 (マクド FF6b-xgEu)
2018/02/21(水) 23:10:49.37ID:EmINyJBAF265デフォルトの名無しさん (ワッチョイ c667-x4Or)
2018/02/22(木) 10:26:41.79ID:qwLRFwLN0 >>263
あと2年待てばconceptできるかもよ
あと2年待てばconceptできるかもよ
266デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/22(木) 21:31:34.66ID:SOkZDC9P0 (VBみたいな名前付き引数が実現されたら
システムハンガリアン否定論者をぎゃふんと言わせられるのに…
システムハンガリアン否定論者をぎゃふんと言わせられるのに…
267デフォルトの名無しさん (ワッチョイ c667-x4Or)
2018/02/22(木) 21:55:24.65ID:qwLRFwLN0 システムハンガリアン発祥の会社が何か作ったら否定論者がぎゃふんと言うのか?
おまえの頭の中は論点先取だか循環論法だかがグルグル回っているようだな
おまえの頭の中は論点先取だか循環論法だかがグルグル回っているようだな
268デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/23(金) 22:10:42.23ID:XlnyEs6k0 ↑
想像してごらん全ての人々が
dwRet = ::WaitForSingleObject( hHandle = m_hThread, dwMillisecond = m_hTCTmo )
と書く世界を、
想像してごらん全ての人々が
dwRet = ::WaitForSingleObject( hHandle = m_hThread, dwMillisecond = m_hTCTmo )
と書く世界を、
269デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/23(金) 22:11:40.62ID:XlnyEs6k0 ごめ
誤: m_hTCTmo
正: m_dwTCTmo
見れば間違いがワカルのがハンガリアンの極めて良いところ
誤: m_hTCTmo
正: m_dwTCTmo
見れば間違いがワカルのがハンガリアンの極めて良いところ
270デフォルトの名無しさん (ブーイモ MM5e-chUR)
2018/02/23(金) 22:21:40.17ID:R3lraTlNM271デフォルトの名無しさん (ワッチョイ ba12-SJjx)
2018/02/24(土) 10:44:07.22ID:mn7A8TMg0 一分間で間違いに気づいてはいるものの
そもそもの書く瞬間にはどうやら人智を用いても気付けないらしいから
IDEにエラー出してもらった方が早いんじゃあねえの
実は人間の集中力を超えたところにある方法論で、実践するとストレスが溜まるっぽいから、機械任せにした方がいい
それに、書いてる最中は変数の型まで考えたくない
見て分かることは、機械任せにすれば見なくても分かるから、
今のご時世、人間の有限の集中力を目視チェックなんかに使いたくない
脳みそのリソースはもっと別のところに使うべきだ
つまりは、書いてる最中は脳みそが「それが正しい」と思い込んでるから、
間違いは自分自身では絶対に分からない
これがバグを作り込む
hだったかdwだったかを脳が自動的に混同してるから、その分だけ余計に脳のリソースを使っている
「なんで書いている最中に自分自身で気付かないのか」、これ、とても重要だよ
そもそもの書く瞬間にはどうやら人智を用いても気付けないらしいから
IDEにエラー出してもらった方が早いんじゃあねえの
実は人間の集中力を超えたところにある方法論で、実践するとストレスが溜まるっぽいから、機械任せにした方がいい
それに、書いてる最中は変数の型まで考えたくない
見て分かることは、機械任せにすれば見なくても分かるから、
今のご時世、人間の有限の集中力を目視チェックなんかに使いたくない
脳みそのリソースはもっと別のところに使うべきだ
つまりは、書いてる最中は脳みそが「それが正しい」と思い込んでるから、
間違いは自分自身では絶対に分からない
これがバグを作り込む
hだったかdwだったかを脳が自動的に混同してるから、その分だけ余計に脳のリソースを使っている
「なんで書いている最中に自分自身で気付かないのか」、これ、とても重要だよ
272デフォルトの名無しさん (スップ Sd02-2/+O)
2018/02/24(土) 11:11:20.01ID:51zBno3Kd 変数名と型が一致してるという保証がゼロだからシステムハンガリアンなんて無駄以外の何物でもない
無駄というか悪
無駄というか悪
273デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/24(土) 12:15:45.87ID:mm9B9rZ50274デフォルトの名無しさん (ワッチョイ df7f-x4Or)
2018/02/24(土) 12:23:50.23ID:b3ZDZ7IS0 その場合、やめられる方だけやめればいいな
つまりハンガリアンを。
つまりハンガリアンを。
275デフォルトの名無しさん (ワッチョイ b7b3-x4Or)
2018/02/24(土) 12:27:42.98ID:pqM6ijVV0 まともな開発環境使っていれば必要ないのでは
276デフォルトの名無しさん (ワッチョイ c6cb-chUR)
2018/02/24(土) 12:34:43.53ID:B9f7/evx0 ハンガリアンはもうだめだ。
ポーランドを使おう。
ポーランドを使おう。
277デフォルトの名無しさん (ワッチョイ 520e-MTlB)
2018/02/24(土) 12:51:07.68ID:d7+fd25J0 >>272
そういう事言い出すと「関数名と機能が一致してる保証がゼロ」や「クラスメンバの隠蔽が完璧である保証がゼロ」などといくらでも難癖を付けれるナリ
ヒューマンエラーを理由に不要と結論付けるのならあらゆるコーディング規約が不要という結論になってしまう、これはいけない
命名規則は可読性の向上に結びつくものでなければならない、規約を違反する事で起きるトラブルはプログラマ側の責任、それは分かるよね?
そういう事言い出すと「関数名と機能が一致してる保証がゼロ」や「クラスメンバの隠蔽が完璧である保証がゼロ」などといくらでも難癖を付けれるナリ
ヒューマンエラーを理由に不要と結論付けるのならあらゆるコーディング規約が不要という結論になってしまう、これはいけない
命名規則は可読性の向上に結びつくものでなければならない、規約を違反する事で起きるトラブルはプログラマ側の責任、それは分かるよね?
278デフォルトの名無しさん (ワッチョイ df7f-x4Or)
2018/02/24(土) 13:26:14.86ID:b3ZDZ7IS0 ヒューマンエラーが起きる部分は極力排除して機械任せにできる部分は機械任せにすればいい
ハンガリアンを導入する理由はもはや無いな。可読性悪いし。
ハンガリアンを導入する理由はもはや無いな。可読性悪いし。
279デフォルトの名無しさん (ワッチョイ ea60-MTlB)
2018/02/24(土) 14:24:10.94ID:yWQ45jBy0280デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/24(土) 14:29:08.35ID:mm9B9rZ50 可読性ぐらいテンプレートによる高度なメタプログラミングに慣れた諸兄なら
ハンガリアンごとき目を慣らして解決できるはずなんじゃ…
ハンガリアンごとき目を慣らして解決できるはずなんじゃ…
281はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e66f-x4Or)
2018/02/24(土) 15:03:19.72ID:ohURjCBl0283デフォルトの名無しさん (ワッチョイ 2f93-IXLF)
2018/02/24(土) 17:03:03.20ID:agv5rOmv0284デフォルトの名無しさん (ブーイモ MM5e-Clm8)
2018/02/24(土) 17:08:35.75ID:4JIC+wG/M なぁにその内、ロシアが併呑してくれるさ
285デフォルトの名無しさん (ワッチョイ 70b3-Tnpk)
2018/02/25(日) 14:16:53.97ID:8l5JrV0a0 >>266
名前付き引数イディオムとenable_if<is_same<...>::value>が最強と言うことだな
※プログラマが、使用者が型を間違えないようにと気を使うのが正しいなら、間違えたらコンパイルエラーになるこれが最強だろ?
名前付き引数イディオムとenable_if<is_same<...>::value>が最強と言うことだな
※プログラマが、使用者が型を間違えないようにと気を使うのが正しいなら、間違えたらコンパイルエラーになるこれが最強だろ?
286デフォルトの名無しさん (ワッチョイ ba12-SJjx)
2018/02/25(日) 14:35:24.31ID:zhzj1IkW0 >>277
ちげえんだよんぁ
可読性じゃねえんだよ
>>268を見てみろよ、
読む時じゃなくて書く時のヒューマンエラーだ
なんで入り込んだのか全く分からんようなミステイクだ
プログラミングが工業的生産の一種なら、その手のヒューマンエラーは無い方がいい
で、改めて>>268を見てみると、「可読性」があってプレフィクスの間違いに気付いてはいるものの、
そもそも書く段でなんで間違えたのか、それが全く分からない
他人はおろか本人すらも自覚できない謎の理由でプレフィクスを間違えてる(これがヒューマンエラーなんだけどな)
なんで、後だしジャンケンだと、「プレフィクスが最初から無ければ、間違いも発生しえなかった」、とも言える
もしかすると、書く時に間違える/読む時に間違える の比率を考えると、ハンガリアン記法は書く時に間違えやすいが読むときに間違いにくい……のトレードオフなだけかもしれん
要するに、可読性と生産性のトレードオフだけなんじゃあねえのか?
それに、読む時のヒューマンエラーと書く時のヒューマンエラーをわざと混同してるのはいただけない
ちげえんだよんぁ
可読性じゃねえんだよ
>>268を見てみろよ、
読む時じゃなくて書く時のヒューマンエラーだ
なんで入り込んだのか全く分からんようなミステイクだ
プログラミングが工業的生産の一種なら、その手のヒューマンエラーは無い方がいい
で、改めて>>268を見てみると、「可読性」があってプレフィクスの間違いに気付いてはいるものの、
そもそも書く段でなんで間違えたのか、それが全く分からない
他人はおろか本人すらも自覚できない謎の理由でプレフィクスを間違えてる(これがヒューマンエラーなんだけどな)
なんで、後だしジャンケンだと、「プレフィクスが最初から無ければ、間違いも発生しえなかった」、とも言える
もしかすると、書く時に間違える/読む時に間違える の比率を考えると、ハンガリアン記法は書く時に間違えやすいが読むときに間違いにくい……のトレードオフなだけかもしれん
要するに、可読性と生産性のトレードオフだけなんじゃあねえのか?
それに、読む時のヒューマンエラーと書く時のヒューマンエラーをわざと混同してるのはいただけない
287デフォルトの名無しさん (ワッチョイ 8a6e-x4Or)
2018/02/25(日) 16:15:03.29ID:s5td7qK+0 void func(int a)
{
{
288デフォルトの名無しさん (ワッチョイ 8a6e-x4Or)
2018/02/25(日) 16:15:31.06ID:s5td7qK+0 void func(int a)
{
//aが何型かわからない
//アホかおまえは
}
{
//aが何型かわからない
//アホかおまえは
}
289デフォルトの名無しさん (ワッチョイ 8a6e-x4Or)
2018/02/25(日) 16:46:37.12ID:s5td7qK+0 template <typename T>
void func(T lpszA)
{
//lpszって書いてあるからTはLPSTR型だな
//アホかおまえは
}
void func(T lpszA)
{
//lpszって書いてあるからTはLPSTR型だな
//アホかおまえは
}
290デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/25(日) 19:14:43.19ID:4jIr3vvu0291デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/25(日) 19:15:39.42ID:4jIr3vvu0 ごめ
×:テンプレート批判論者
○:ハンガリアン批判論者
×:テンプレート批判論者
○:ハンガリアン批判論者
292デフォルトの名無しさん (ワッチョイ df7f-x4Or)
2018/02/25(日) 19:29:08.16ID:s+qaK1zS0 テンプレートに対してはハンガリアンは全くの無力だよなあ
一貫性の観点からやっぱりハンガリアンは無い方がいいわ
一貫性の観点からやっぱりハンガリアンは無い方がいいわ
293デフォルトの名無しさん (ワッチョイ 8abd-2pQG)
2018/02/25(日) 19:48:52.19ID:4jIr3vvu0 .>>290のレスを見てテンプレートの実体化時までハンガリアンが無力なことにされてはかないませんなあ…
294デフォルトの名無しさん (ワッチョイ 0637-rG1w)
2018/02/25(日) 20:11:05.52ID:fbPK05Px0 そもそも関数が長い場合は型情報を持たすのもありだよな
システムハンガリアンをやめさせようとして先に関数を短くしなきゃだめだなと追う結論に至って放置した
システムハンガリアンをやめさせようとして先に関数を短くしなきゃだめだなと追う結論に至って放置した
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- オナニーするか😔
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- VIPスクリプトだらけでワロタwwwwwwwww
- パパ活だの立ちんぼだのトー横キッズだのを放置してる今の日本の終末感すごいよな…昔は援助交際つってすげぇ取り締まられたろ
