次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
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++相談室 part140
■ このスレッドは過去ログ倉庫に格納されています
2019/01/13(日) 05:56:22.70ID:9RrR7Arz
279デフォルトの名無しさん
2019/01/28(月) 18:40:38.89ID:6rt4c1kU ????
何を言ってるのか分からんのだが
何を言ってるのか分からんのだが
280デフォルトの名無しさん
2019/01/28(月) 18:42:34.38ID:ehhV00bD281デフォルトの名無しさん
2019/01/28(月) 18:45:57.76ID:tKT6HQoa 美しいとかそんなのどうでもいいんだよ!
C++ってのはなぁ、戦略爆撃機に例えるとB52なんだよ
基本設計は大昔すぎて今となっては古くさい
後付けでゴチャゴチャと魔改造やりすぎたせいで
今時の若造が見ると「なんでもっとスマートにできないのか」って言う
だがな、こいつは戦争の道具なんだ
たかがちんけな美学のために性能や機能は犠牲にしない
必要とあれば何でも貪欲に付けたしていくがそれは時代に迎合したいからではなく
仕事に必要だからやるだけだ
そんなプロフェッショナルのための戦争の道具、それがC++だ!
C++ってのはなぁ、戦略爆撃機に例えるとB52なんだよ
基本設計は大昔すぎて今となっては古くさい
後付けでゴチャゴチャと魔改造やりすぎたせいで
今時の若造が見ると「なんでもっとスマートにできないのか」って言う
だがな、こいつは戦争の道具なんだ
たかがちんけな美学のために性能や機能は犠牲にしない
必要とあれば何でも貪欲に付けたしていくがそれは時代に迎合したいからではなく
仕事に必要だからやるだけだ
そんなプロフェッショナルのための戦争の道具、それがC++だ!
282デフォルトの名無しさん
2019/01/28(月) 18:48:22.51ID:m1mrBSmH283デフォルトの名無しさん
2019/01/28(月) 19:15:51.56ID:E4+rgmE7284デフォルトの名無しさん
2019/01/28(月) 19:20:45.82ID:8pg5nSAS イミュータボォなヴァリューオブジェクトを実装するときにコピコン使うかスマポ使うか悩む
285デフォルトの名無しさん
2019/01/28(月) 19:46:05.45ID:zheEgWgK 例外安全性考えたらスマポ使わないでやるのは地獄
生ポとかいってるやつはどうせリークしまくりコード書いてるだろ
たとえ例外オフにしてたとしてもな
生ポとかいってるやつはどうせリークしまくりコード書いてるだろ
たとえ例外オフにしてたとしてもな
286デフォルトの名無しさん
2019/01/28(月) 19:56:32.74ID:ehhV00bD 何言ってんだこいつ
287デフォルトの名無しさん
2019/01/28(月) 20:02:46.72ID:s951gwaK スマポがなかった頃、僕はリークしまくりでしたっていう自己紹介文では?
288デフォルトの名無しさん
2019/01/28(月) 20:22:57.30ID:UJKy5wM0 aho ?
289デフォルトの名無しさん
2019/01/28(月) 20:28:40.03ID:zE5Bvtvg >>247
出来ましたーありがとうm(_ _)m
出来ましたーありがとうm(_ _)m
290デフォルトの名無しさん
2019/01/28(月) 21:27:20.71ID:jKaiFfBH291デフォルトの名無しさん
2019/01/28(月) 21:35:34.93ID:3CrwaDYk 流れを切って悪いが、コンセプトを使ってクラスを抽象化するのってありだと思う? 仮想関数のコストを払いたくないのが主な理由です。
これに関する指針とか本とかあったら教えてつかわさい。
これに関する指針とか本とかあったら教えてつかわさい。
292はちみつ餃子 ◆8X2XSCHEME
2019/01/28(月) 22:06:31.16ID:UMu6PPgN294デフォルトの名無しさん
2019/01/28(月) 22:23:20.84ID:ehhV00bD295デフォルトの名無しさん
2019/01/28(月) 22:27:46.35ID:zheEgWgK 例外安全性の困難さを知らないやつほど大口を叩く
296デフォルトの名無しさん
2019/01/28(月) 22:35:01.85ID:ehhV00bD お前の業界の話なんか知らんわ
例外使わない&リソース管理は一元化してる業種だってあるんだよボケ
自分が他人をけなしてるから自分もけなされてるってわかってるか?
例外使わない&リソース管理は一元化してる業種だってあるんだよボケ
自分が他人をけなしてるから自分もけなされてるってわかってるか?
297デフォルトの名無しさん
2019/01/28(月) 22:36:25.09ID:m1mrBSmH >>293
メモリー買い足してもダメ?
メモリー買い足してもダメ?
298デフォルトの名無しさん
2019/01/28(月) 22:39:50.87ID:6rt4c1kU >スマポが無いとリソース管理全く出来ないやつとかお断りだわ
ガチで障害者で草
ガチで障害者で草
299デフォルトの名無しさん
2019/01/28(月) 22:47:52.82ID:zheEgWgK リソース管理一元化の意味わかる人、解説頼む
スマポ使わない理由なのかそれ
スマポ使わない理由なのかそれ
300はちみつ餃子 ◆8X2XSCHEME
2019/01/28(月) 22:49:39.89ID:UMu6PPgN std::shared_ptr は、まあ速度的に不利になる場合もあるだろうけど、
std::unique_ptr を避ける理由って C++11 すら使えない環境の場合以外にはないと思うんだが、何かある?
std::unique_ptr を避ける理由って C++11 すら使えない環境の場合以外にはないと思うんだが、何かある?
301デフォルトの名無しさん
2019/01/28(月) 22:51:28.96ID:MUYIApjm302デフォルトの名無しさん
2019/01/28(月) 22:57:22.66ID:ehhV00bD >>300
そら管理責任を背負ってる部分では使えばいいけど、その一元管理されたリソースを使う側には
普通生ポか参照で渡すだろ
そういう場合にunique使う必要は無いし(unique_ptrの参照でも渡すのか?)
sharedにすると逆に管理責任が曖昧になる
特定のタイミングで一括でリソース確保、解放したいようなシステムを想像したらわかるかと
そら管理責任を背負ってる部分では使えばいいけど、その一元管理されたリソースを使う側には
普通生ポか参照で渡すだろ
そういう場合にunique使う必要は無いし(unique_ptrの参照でも渡すのか?)
sharedにすると逆に管理責任が曖昧になる
特定のタイミングで一括でリソース確保、解放したいようなシステムを想像したらわかるかと
303デフォルトの名無しさん
2019/01/28(月) 23:03:29.70ID:IwEPom0E どうせシーケンス図的なもん書かずに大きいプログラムは作らないと思うんだよね。
そうすると解放する場所も一目瞭然なのであまり必要性を感じない。
それに縛られないプログラムもあると思うけど、その場合得てしてC++は向いとらん。
そうすると解放する場所も一目瞭然なのであまり必要性を感じない。
それに縛られないプログラムもあると思うけど、その場合得てしてC++は向いとらん。
304デフォルトの名無しさん
2019/01/28(月) 23:04:18.01ID:6rt4c1kU そして人は神クラスを作る
305デフォルトの名無しさん
2019/01/28(月) 23:06:28.09ID:zheEgWgK 黙ってればよかったものをw
306デフォルトの名無しさん
2019/01/28(月) 23:08:56.84ID:EdRO7DHl >>300
使ってもいいけど、積極的に使いたくなる状況は意外と少ない
上の人も言ってるように親玉クラスとかスタックの上の方とか管理責任を持ってるところでは使いたければ使ってもいいけど、
そういうときはunique_ptr使わなくてもRAIIで勝手に解放されるでしょ
unique_ptrが本当に有効なのは所有権を他所に完全に引き渡してしまうケースだけど、
値を好んで多用する文化を持ちmoveも使えるC++において、そういうケースってわりとレアだと思う
使ってもいいけど、積極的に使いたくなる状況は意外と少ない
上の人も言ってるように親玉クラスとかスタックの上の方とか管理責任を持ってるところでは使いたければ使ってもいいけど、
そういうときはunique_ptr使わなくてもRAIIで勝手に解放されるでしょ
unique_ptrが本当に有効なのは所有権を他所に完全に引き渡してしまうケースだけど、
値を好んで多用する文化を持ちmoveも使えるC++において、そういうケースってわりとレアだと思う
307デフォルトの名無しさん
2019/01/28(月) 23:09:08.50ID:6rt4c1kU 歴史を再現してて尊い
308デフォルトの名無しさん
2019/01/28(月) 23:13:08.96ID:ehhV00bD309デフォルトの名無しさん
2019/01/28(月) 23:28:08.44ID:E4+rgmE7 所有権というのがいまいちわからんのだけどclassAがunique_pというデータを所有していたとして、他の関数からunique_pを参照して内容を書き換えるのは何も問題ないんだよな?
生成と破棄をまかせるだけという理解でok?
生成と破棄をまかせるだけという理解でok?
310デフォルトの名無しさん
2019/01/29(火) 00:00:27.39ID:2bsH4V/V >>308
unique_ptrについてぐくった?
unique_ptrについてぐくった?
311デフォルトの名無しさん
2019/01/29(火) 00:03:11.11ID:TJ0JKGHp312デフォルトの名無しさん
2019/01/29(火) 00:04:05.29ID:2bsH4V/V313デフォルトの名無しさん
2019/01/29(火) 00:05:28.12ID:2bsH4V/V 何やってもださいやつw
314デフォルトの名無しさん
2019/01/29(火) 00:19:10.99ID:TJ0JKGHp >>309
この場合所有権といえばそう。
この場合所有権といえばそう。
315デフォルトの名無しさん
2019/01/29(火) 00:21:22.57ID:ONcJDm6u >>312
RAIIしたいだけならunique_ptrがなぜ必要?
RAIIしたいだけならunique_ptrがなぜ必要?
316デフォルトの名無しさん
2019/01/29(火) 00:52:07.42ID:QzmnZttP 自動変数として宣言するには危険なぐらい巨大であるとか
他の構造体なりクラスなりにメンバとして埋め込むのが憚られるような
ばかでかい構造体やクラスを保持するのに使うと便利
この使い方に徹するなら所有権みたいな中途半端なブツで悩まずに済む
メンバをunique_ptrで保持するクラスはコンストラクタで例外が生じてもリークせずに済むおまけ付き
コンストラクタで例外など起こすなよというのは置くとして…
他の構造体なりクラスなりにメンバとして埋め込むのが憚られるような
ばかでかい構造体やクラスを保持するのに使うと便利
この使い方に徹するなら所有権みたいな中途半端なブツで悩まずに済む
メンバをunique_ptrで保持するクラスはコンストラクタで例外が生じてもリークせずに済むおまけ付き
コンストラクタで例外など起こすなよというのは置くとして…
317はちみつ餃子 ◆8X2XSCHEME
2019/01/29(火) 03:58:18.59ID:UoxCxtnm >>302 >>306
何も全部のポインタを置き換えるべしというわけじゃない。 所有権の管理に使う話。
下流には「アクセスを許す」のであって、「所有権を渡す」必要はないだろ。
(渡したい設計のときは渡せばいいが。)
可能なら一環してスマートポインタで扱うに越したことは無いとは思うが、
下流に渡すのは生ポインタにするという方針もそれはそれで悪くないと思う。
>>260 みたいなケースであっても、下流には生ポインタで渡すのであっても
スマートポインタは有用にはかわりないって話。
所有権の観点から見ると生ポインタってのは所有権を持っているか持っていないか
わからない状態ってことで、でも、その中に std::unique_ptr がひとつあれば、
それが後始末をするのだというサインになる。
所有権をどこで持っているのか見た目にわかるので、単純に、読みやすい。
もちろん、一旦生ポインタとして取り出したものをまたスマートポインタに入れたりすると
おかしなことになるのでそうしないように気を付ける必要はあるけど。
例外に対して気をつかうのはポインタを適切に扱うより冗長でつらいのでやりたくないってのもある。
何も全部のポインタを置き換えるべしというわけじゃない。 所有権の管理に使う話。
下流には「アクセスを許す」のであって、「所有権を渡す」必要はないだろ。
(渡したい設計のときは渡せばいいが。)
可能なら一環してスマートポインタで扱うに越したことは無いとは思うが、
下流に渡すのは生ポインタにするという方針もそれはそれで悪くないと思う。
>>260 みたいなケースであっても、下流には生ポインタで渡すのであっても
スマートポインタは有用にはかわりないって話。
所有権の観点から見ると生ポインタってのは所有権を持っているか持っていないか
わからない状態ってことで、でも、その中に std::unique_ptr がひとつあれば、
それが後始末をするのだというサインになる。
所有権をどこで持っているのか見た目にわかるので、単純に、読みやすい。
もちろん、一旦生ポインタとして取り出したものをまたスマートポインタに入れたりすると
おかしなことになるのでそうしないように気を付ける必要はあるけど。
例外に対して気をつかうのはポインタを適切に扱うより冗長でつらいのでやりたくないってのもある。
318デフォルトの名無しさん
2019/01/29(火) 04:01:02.14ID:NRuJsE/9 class A
{
Foo* pFoo;
public:
A(): pFoo(new Foo(42)) {}
A(A& other): pFoo(other.pFoo) { other.pFoo = nullptr; }
A& operator=(A& other) { std::swap(this->pFoo, other.pFoo); }
~A() { delete pFoo; }
};
class A
{
std::unique_ptr<Foo> pFoo;
public:
A(): pFoo(std::make_unique<Foo>(42)) {}
};
どっちが間違えにくいかなんて明白だろ
「俺は間違えない」「間違える低能が悪い」とか抜かす奴はソフト品質の勉強してくれ
{
Foo* pFoo;
public:
A(): pFoo(new Foo(42)) {}
A(A& other): pFoo(other.pFoo) { other.pFoo = nullptr; }
A& operator=(A& other) { std::swap(this->pFoo, other.pFoo); }
~A() { delete pFoo; }
};
class A
{
std::unique_ptr<Foo> pFoo;
public:
A(): pFoo(std::make_unique<Foo>(42)) {}
};
どっちが間違えにくいかなんて明白だろ
「俺は間違えない」「間違える低能が悪い」とか抜かす奴はソフト品質の勉強してくれ
319デフォルトの名無しさん
2019/01/29(火) 04:04:45.84ID:NRuJsE/9 あと自分の管理下のデータメンバーを参照するポインタをホイホイ外に渡したいだなんて
それカプセル化出来てない証拠だから
それカプセル化出来てない証拠だから
320デフォルトの名無しさん
2019/01/29(火) 08:17:54.67ID:ONcJDm6u321デフォルトの名無しさん
2019/01/29(火) 08:26:37.92ID:W2YyhY1O スマートポインタがそのRAIIの代表格なのだが
まさか自分で書けばいいから使わなくていいとか言いたいん?
まさか自分で書けばいいから使わなくていいとか言いたいん?
322デフォルトの名無しさん
2019/01/29(火) 08:33:39.21ID:6edJr3Gn ライブラリを使うのは甘え
323デフォルトの名無しさん
2019/01/29(火) 08:33:59.57ID:ONcJDm6u >>321
普通に直接値を持てばいいでしょ
それでカバーしにくい代表的なケースといえば
俺なら遅延初期化したいケースとか多態性を使いたいケースとかが真っ先に思いつくけど、
スマポ派からはそういう指摘が全然出てこなかったってことは実際それほど困らないことの何よりの証拠だなw
普通に直接値を持てばいいでしょ
それでカバーしにくい代表的なケースといえば
俺なら遅延初期化したいケースとか多態性を使いたいケースとかが真っ先に思いつくけど、
スマポ派からはそういう指摘が全然出てこなかったってことは実際それほど困らないことの何よりの証拠だなw
324デフォルトの名無しさん
2019/01/29(火) 09:02:42.51ID:a5ZxXHh2325デフォルトの名無しさん
2019/01/29(火) 09:22:48.30ID:C0E16yKU 初期化の遅延はoptionalがいるから用途として挙げるのは微妙なところ
17使えない場面自体は山ほどあるだろうけどさ
17使えない場面自体は山ほどあるだろうけどさ
326デフォルトの名無しさん
2019/01/29(火) 09:29:51.94ID:8dDk6Bea deleteの手間を惜しむならコメント書くのもやめればと思う
327デフォルトの名無しさん
2019/01/29(火) 09:31:27.97ID:KR1Oxil+ なんなのこの根性論w
便利なものは使えよ
ゼロコストじゃん
便利なものは使えよ
ゼロコストじゃん
328デフォルトの名無しさん
2019/01/29(火) 09:32:04.90ID:C0E16yKU deleteは手間じゃなくてリスクって認識なんですよね
自分を含めて人間を信用してないからdeleteを書かせない(スマポに任せる)
この文脈で人間を信用してないからコメントは書かせる
自分を含めて人間を信用してないからdeleteを書かせない(スマポに任せる)
この文脈で人間を信用してないからコメントは書かせる
329デフォルトの名無しさん
2019/01/29(火) 09:32:41.81ID:6edJr3Gn 30年前の議論してるな
330デフォルトの名無しさん
2019/01/29(火) 09:36:00.95ID:30IAnyu6 new/delete するかどうかの話と、 new/delete する場合にスマートポインタを使うかどうかの話とが
ごっちゃになってる人が居るように見えました。
ごっちゃになってる人が居るように見えました。
331デフォルトの名無しさん
2019/01/29(火) 09:39:36.81ID:8dDk6Bea deleteはもちろん人間が読むためのもんよ。
リソースの解放なんて副次的なもの。
リソースの解放なんて副次的なもの。
332デフォルトの名無しさん
2019/01/29(火) 09:58:45.15ID:KR1Oxil+ またえらいのがやって来たなw
333デフォルトの名無しさん
2019/01/29(火) 10:20:07.20ID:pTVW5tot メモリ解放程度ならお仕着せのスマポで簡単かもしれんけどさ
その他のリソース開放も重なると慎重になったほうがいいわ
どうせ別途開放処理書くなら一緒にポインターも解放したほうがコードの対称性もよくなってわかりやすい
しかしリソース開放漏れがOSレベルでしょっちゅう発生してるのなんとかせい
その他のリソース開放も重なると慎重になったほうがいいわ
どうせ別途開放処理書くなら一緒にポインターも解放したほうがコードの対称性もよくなってわかりやすい
しかしリソース開放漏れがOSレベルでしょっちゅう発生してるのなんとかせい
334デフォルトの名無しさん
2019/01/29(火) 13:13:48.58ID:JkAV6Qsd リソース開放漏れって、ロックされているの?それは悲しいな
335デフォルトの名無しさん
2019/01/29(火) 13:54:12.84ID:TJ0JKGHp336デフォルトの名無しさん
2019/01/29(火) 15:30:43.36ID:oEOJ8htr >>319
const-ness理解してないのはC++理解してない証拠だから。
const-ness理解してないのはC++理解してない証拠だから。
337デフォルトの名無しさん
2019/01/29(火) 17:41:11.83ID:xfxzRb5k338デフォルトの名無しさん
2019/01/29(火) 17:50:18.96ID:TJ0JKGHp339デフォルトの名無しさん
2019/01/29(火) 17:53:37.09ID:TJ0JKGHp ていうかスマポ派は
「スマポ使って楽できる(設計上も問題なく、またそうすべき)場面でもスマポ使わない(または使えない)馬鹿」
を勝手に想定してモノを言ってるから毎回言い争いになるんだと思うが
スマポごときでマウンティングとかおめでてーな
「スマポ使って楽できる(設計上も問題なく、またそうすべき)場面でもスマポ使わない(または使えない)馬鹿」
を勝手に想定してモノを言ってるから毎回言い争いになるんだと思うが
スマポごときでマウンティングとかおめでてーな
340デフォルトの名無しさん
2019/01/29(火) 18:15:41.64ID:8rAEnTT8 そもそもスマポ自体が推奨されるものかどうか。
stl も boost も本当は C++ じゃない。
stl も boost も本当は C++ じゃない。
341デフォルトの名無しさん
2019/01/29(火) 18:22:39.90ID:8rAEnTT8 「どうして、人々は、『私は本当は boost を使いたくない』と遠まわしにほのめか
すのでしょう?」
Why do people seem to insinuate I would rather not use Boost?
Very often here on SO I see notes about boost such as
If you are fine with using Boost...
or
If you can use Boost...
https://stackoverflow.com/questions/33452925/why-do-people-seem-to-insinuate-i-would-rather-not-use-boost
すのでしょう?」
Why do people seem to insinuate I would rather not use Boost?
Very often here on SO I see notes about boost such as
If you are fine with using Boost...
or
If you can use Boost...
https://stackoverflow.com/questions/33452925/why-do-people-seem-to-insinuate-i-would-rather-not-use-boost
342デフォルトの名無しさん
2019/01/29(火) 18:25:38.40ID:xfxzRb5k >>338
「ユーザー」の意味がわからんが、自分が作ったファクトリーは自分だけが使うから危なかろうとなんだろうと構わないっていう意味で抜かしてるならあんたはマトモな開発者じゃないね
「ユーザー」の意味がわからんが、自分が作ったファクトリーは自分だけが使うから危なかろうとなんだろうと構わないっていう意味で抜かしてるならあんたはマトモな開発者じゃないね
343デフォルトの名無しさん
2019/01/29(火) 18:25:40.64ID:8rAEnTT8 Why do people seem to insinuate I would rather not use Boost?
↓
多くの人が、「Boostを使わないほうがいい」、と主張しているように見えるのは
なぜですか?
↓
多くの人が、「Boostを使わないほうがいい」、と主張しているように見えるのは
なぜですか?
344デフォルトの名無しさん
2019/01/29(火) 18:36:19.92ID:TJ0JKGHp >>342
そこまで自分とこのライブラリ開発者も自分すらも信用出来ないのなら
C++使うべきじゃないよ
だいたいその途中経路全てCopyConstructible, CopyAssignableを要求される文脈が
一度たりとも発生しないという保証が無ければunique使えないよな
ていうか趣味グラマだろお前w
そこまで自分とこのライブラリ開発者も自分すらも信用出来ないのなら
C++使うべきじゃないよ
だいたいその途中経路全てCopyConstructible, CopyAssignableを要求される文脈が
一度たりとも発生しないという保証が無ければunique使えないよな
ていうか趣味グラマだろお前w
345デフォルトの名無しさん
2019/01/29(火) 18:43:45.94ID:TJ0JKGHp なんでユーザーがやる前提なんだ、って聞いて「自分だけが使うから」
なんて発想になる時点でお察しなんだが・・まぁ言ってもわからんだろうな
なんて発想になる時点でお察しなんだが・・まぁ言ってもわからんだろうな
346デフォルトの名無しさん
2019/01/29(火) 18:53:34.87ID:xfxzRb5k なんだキチガイか
ムーブするっつってんのになんでコピー可能性要求してんだこのキチガイ
ファクトリーが作ったものを管理屋に渡す前になんでヨソにコピーしてんだこのキチガイ
ムーブするっつってんのになんでコピー可能性要求してんだこのキチガイ
ファクトリーが作ったものを管理屋に渡す前になんでヨソにコピーしてんだこのキチガイ
347デフォルトの名無しさん
2019/01/29(火) 19:09:09.99ID:yGUoU/E+ RAIIを徹底しましょう。
348デフォルトの名無しさん
2019/01/29(火) 19:13:58.69ID:+ftC4go9 これくらいユーザーの関わるレイヤーがバラバラなのがc++なんだわ。
349デフォルトの名無しさん
2019/01/29(火) 19:26:19.11ID:6edJr3Gn レイヤーではなく勉強量
350デフォルトの名無しさん
2019/01/29(火) 19:58:54.89ID:y6MyodWj stlもboostもc++でないという人は他の人が作ったライブラリもc++じゃないというんだろ?
351デフォルトの名無しさん
2019/01/29(火) 20:01:21.40ID:6edJr3Gn Python3はPythonじゃないとか言ってPython2使い続けてるゴミみたいだな
352デフォルトの名無しさん
2019/01/29(火) 20:04:29.67ID:+ftC4go9 ビルド速度、コンパイラの安定性もまともに計らずに
ただ新しいものだけ使えばいいってのはただのバカにしか見えないがな。
ただ新しいものだけ使えばいいってのはただのバカにしか見えないがな。
353デフォルトの名無しさん
2019/01/29(火) 20:12:27.09ID:6edJr3Gn ワロタ
354デフォルトの名無しさん
2019/01/29(火) 20:42:46.37ID:NRuJsE/9 たった8年前に標準化されたばかりの超絶最新機能を使いたがるバカにID:+ftC4go9様がお怒りだぞ
355デフォルトの名無しさん
2019/01/29(火) 20:47:18.60ID:W2YyhY1O 10年は寝かさないと成熟したとは言えないでしょ
なんならもう少し見て20年
なんならもう少し見て20年
356デフォルトの名無しさん
2019/01/29(火) 20:54:35.03ID:jLuFDhog たかが新機能に10年も20年も寝かすとかアホか!
・・と言う人はC++の歴史をよく眺めましょう
・・と言う人はC++の歴史をよく眺めましょう
357デフォルトの名無しさん
2019/01/29(火) 20:55:22.18ID:y6MyodWj 新しい言語が使えなくなっちゃう
358デフォルトの名無しさん
2019/01/29(火) 22:35:06.17ID:QzmnZttP 20年あったらメモリは2^20倍になってCPUの速度も2^20倍ぐらいになる!
359デフォルトの名無しさん
2019/01/29(火) 22:49:33.84ID:eMwTQyJK しかして人間の知能はあまり変わらない
10年で1.01倍くらい
10年で1.01倍くらい
360デフォルトの名無しさん
2019/01/29(火) 23:26:25.60ID:8rAEnTT8 年数の問題でなく、単に boost や C++ の設計者が馬鹿なだけだよ。
はっきり言って。
はっきり言って。
361デフォルトの名無しさん
2019/01/29(火) 23:57:13.83ID:+ftC4go9 で、その新機能とやらで生産性が上がると本気で思ってんのかね?
おめでてーな。
おめでてーな。
362デフォルトの名無しさん
2019/01/30(水) 00:01:24.97ID:vB8508VG >>358
特にCPUの速度に関して本気で言ってんのだったら物を知らないね、あなた。
特にCPUの速度に関して本気で言ってんのだったら物を知らないね、あなた。
363デフォルトの名無しさん
2019/01/30(水) 00:04:00.89ID:UNHNo1ul 企業戦士マジレス
364デフォルトの名無しさん
2019/01/30(水) 00:19:59.89ID:vB8508VG 「template を使うと、エラーが長くなって判読しにくい」
「template は、不注意に使うと、code の肥大化を招く」
「template のインスタンス化すると、コンパイル時間とメモリー使用量が増大する」
これ以外に、「Other issues」の欄に、無数の問題点が挙がっている。
https://en.wikipedia.org/wiki/Standard_Template_Library
Error messages involving templates tend to be very long and difficult to decipher.
This problem has been considered so severe that a number of tools have been
written that simplify and prettyprint STL-related error messages to make them
more comprehensible.
Careless use of templates can lead to code bloat.[7] This has been countered with
special techniques within STL implementations (e.g. using void* containers internally
and other "diet template" techniques) and improving compilers' optimization techniques.
However, this symptom is similar to naively manually copying a set of functions to work
with a different type, in that both can be avoided with care and good technique.
Template instantiation can increase compilation time and memory usage,
in exchange for typically reducing runtime decision-making (e.g. via virtual functions).
Until the compiler technology improves enough, this problem can be only partially
eliminated by careful coding, avoiding certain idioms, and simply not using templates
where they are not appropriate or where compile-time performance is prioritized.
「template は、不注意に使うと、code の肥大化を招く」
「template のインスタンス化すると、コンパイル時間とメモリー使用量が増大する」
これ以外に、「Other issues」の欄に、無数の問題点が挙がっている。
https://en.wikipedia.org/wiki/Standard_Template_Library
Error messages involving templates tend to be very long and difficult to decipher.
This problem has been considered so severe that a number of tools have been
written that simplify and prettyprint STL-related error messages to make them
more comprehensible.
Careless use of templates can lead to code bloat.[7] This has been countered with
special techniques within STL implementations (e.g. using void* containers internally
and other "diet template" techniques) and improving compilers' optimization techniques.
However, this symptom is similar to naively manually copying a set of functions to work
with a different type, in that both can be avoided with care and good technique.
Template instantiation can increase compilation time and memory usage,
in exchange for typically reducing runtime decision-making (e.g. via virtual functions).
Until the compiler technology improves enough, this problem can be only partially
eliminated by careful coding, avoiding certain idioms, and simply not using templates
where they are not appropriate or where compile-time performance is prioritized.
365デフォルトの名無しさん
2019/01/30(水) 00:32:35.94ID:O9mspDJQ コンパイル時間が伸びないテンプレートやらジェネリクスやらなんてのはあるの?
366デフォルトの名無しさん
2019/01/30(水) 00:36:46.36ID:vB8508VG 「STL で実装されているイテレーターの概念は、最初は理解しにくい」
The concept of iterators as implemented by STL can be difficult to understand
at first: for example, if a value pointed to by the iterator is deleted, the iterator
itself is then no longer valid.
↓実は、英語が良く分からない部分があるが、
「メモリ管理に関して、異なるメモリ・アロケーターが使う異なるメモリープール
を同時に使うようなことは出来ないので、状態依存で振舞ってしまうような
メモリ・アロケーターがちゃんと働く事は、コンパイラが動作を保障できない」
みたいな事かな(何かよく分からない):
Compiler compliance does not guarantee that Allocator objects, used for
memory management for containers, will work with state-dependent behavior.
For example, a portable library can't define an allocator type that will pull
memory from different pools using different allocator objects of that type.
(Meyers, p. 50) (addressed in C++11).
The concept of iterators as implemented by STL can be difficult to understand
at first: for example, if a value pointed to by the iterator is deleted, the iterator
itself is then no longer valid.
↓実は、英語が良く分からない部分があるが、
「メモリ管理に関して、異なるメモリ・アロケーターが使う異なるメモリープール
を同時に使うようなことは出来ないので、状態依存で振舞ってしまうような
メモリ・アロケーターがちゃんと働く事は、コンパイラが動作を保障できない」
みたいな事かな(何かよく分からない):
Compiler compliance does not guarantee that Allocator objects, used for
memory management for containers, will work with state-dependent behavior.
For example, a portable library can't define an allocator type that will pull
memory from different pools using different allocator objects of that type.
(Meyers, p. 50) (addressed in C++11).
367デフォルトの名無しさん
2019/01/30(水) 00:48:10.51ID:vB8508VG 直訳すれば、
「コンテナのメモリ管理のために使われている Allocator オブジェクトが、
状態依存の振る舞いを伴って働くことを、コンパイラ準拠は保障しない。」
Compiler compliance does not guarantee that Allocator objects, used for
memory management for containers, will work with state-dependent behavior.
多分、異なったメモリ管理法を使う色々な Memory Allocator があって、
同時に使うことが難しい、というようなことを言っている気がする。
確保されたメモリの先頭アドレスだけを使いたい、というような事でも、
色々な不具合が起きてしまうんだろうか。よく知らないので言ってることも
よく分からない。
「コンテナのメモリ管理のために使われている Allocator オブジェクトが、
状態依存の振る舞いを伴って働くことを、コンパイラ準拠は保障しない。」
Compiler compliance does not guarantee that Allocator objects, used for
memory management for containers, will work with state-dependent behavior.
多分、異なったメモリ管理法を使う色々な Memory Allocator があって、
同時に使うことが難しい、というようなことを言っている気がする。
確保されたメモリの先頭アドレスだけを使いたい、というような事でも、
色々な不具合が起きてしまうんだろうか。よく知らないので言ってることも
よく分からない。
368デフォルトの名無しさん
2019/01/30(水) 00:52:17.50ID:vB8508VG smart pointer や unique pointer、各種コンテナ、Array、Vector、Set
など、色々な物がありすぎて、互いにごちゃごちゃして、メモリブロックを
自動開放するような「状態依存」の振る舞いを、コンパイラが保障することが
できない、みたいなことだろうか。
つまり、誰も分けがわからんスパゲッティー状態なので、メモリーリークも
バグも、めちゃくちゃ生じるかもしれないから、危険だよ、と言うようなことかも
知れない。
そういえば、「実装が複雑すぎて訳分からん」みたいなことがどっかに書かれていた。
など、色々な物がありすぎて、互いにごちゃごちゃして、メモリブロックを
自動開放するような「状態依存」の振る舞いを、コンパイラが保障することが
できない、みたいなことだろうか。
つまり、誰も分けがわからんスパゲッティー状態なので、メモリーリークも
バグも、めちゃくちゃ生じるかもしれないから、危険だよ、と言うようなことかも
知れない。
そういえば、「実装が複雑すぎて訳分からん」みたいなことがどっかに書かれていた。
369デフォルトの名無しさん
2019/01/30(水) 00:59:11.93ID:vB8508VG ・C++の言語仕様もごちゃごちゃと勝手に追加された。
世界中、誰一人として、本当にどうなるかは分からん状態になってる。
つまり、仕様自体がスパゲッティーになってしまってる。
・STL は、使い方も、実装も、両方複雑で、エラーも解読できない。
変な決まりと直感に反する振る舞いが多くて、汚くて使いもんにならない。
仕様が変 ---> 実はバグと同じ。
・これらが両方あいまって、「STL はどう振舞うか保障できません」
と 英語版 Wikipedia に書かれているのかもしれない。
こんな危険ライブラリ(?)は使うべきじゃない。生産性が逆に下がる。
世界中、誰一人として、本当にどうなるかは分からん状態になってる。
つまり、仕様自体がスパゲッティーになってしまってる。
・STL は、使い方も、実装も、両方複雑で、エラーも解読できない。
変な決まりと直感に反する振る舞いが多くて、汚くて使いもんにならない。
仕様が変 ---> 実はバグと同じ。
・これらが両方あいまって、「STL はどう振舞うか保障できません」
と 英語版 Wikipedia に書かれているのかもしれない。
こんな危険ライブラリ(?)は使うべきじゃない。生産性が逆に下がる。
370デフォルトの名無しさん
2019/01/30(水) 01:01:19.96ID:GTSr1lmt もうちょっと読解力とSTLへの理解高めてからそういう主張をされたらいかがか・・・
371デフォルトの名無しさん
2019/01/30(水) 01:05:47.40ID:vB8508VG372デフォルトの名無しさん
2019/01/30(水) 01:12:49.83ID:2o4heCA8 > 世界中、誰一人として、本当にどうなるかは分からん状態になってる。
さすがにこれはない
俺みたいなチン毛みたいなC++グラマーですら、9割がた理解しとるよ
残り1割はもみ手しながら神に祈ってるけど
さすがにこれはない
俺みたいなチン毛みたいなC++グラマーですら、9割がた理解しとるよ
残り1割はもみ手しながら神に祈ってるけど
373デフォルトの名無しさん
2019/01/30(水) 01:15:41.91ID:vB8508VG for example, if a value pointed to by the iterator is deleted, the iterator
itself is then no longer valid.
↑STL, こんなんアホ仕様じゃん。
「イテレーターが指している値が削除されたら、イテレーターそれ自体が
もはや無効になってしまう」
こんなアホ実装しか出来ない、技術のないやつが作ったライブラリが「標準」になって
しまうのが、今の C++ 委員会の実体だ。
こんな状態だから、世界中が引きづられて、地球の生産性が下がっていく。
アメリカ人は馬鹿設計しかできん。だからバグだらけなんだ。
itself is then no longer valid.
↑STL, こんなんアホ仕様じゃん。
「イテレーターが指している値が削除されたら、イテレーターそれ自体が
もはや無効になってしまう」
こんなアホ実装しか出来ない、技術のないやつが作ったライブラリが「標準」になって
しまうのが、今の C++ 委員会の実体だ。
こんな状態だから、世界中が引きづられて、地球の生産性が下がっていく。
アメリカ人は馬鹿設計しかできん。だからバグだらけなんだ。
374デフォルトの名無しさん
2019/01/30(水) 01:17:13.07ID:vB8508VG >>372
実世界で天才と言われているオイラが、STLや今のC++は汚いとしか思えないけどな。
実世界で天才と言われているオイラが、STLや今のC++は汚いとしか思えないけどな。
375デフォルトの名無しさん
2019/01/30(水) 01:39:47.40ID:gkVZVPIY Allocator周りへの不満はあるだろうなと思うけど
削除された値を示すイテレータに正しい内容か不正だと通知を入れるのは
あまりにもコストが大きいからやってないだけだと思う
削除された値を示すイテレータに正しい内容か不正だと通知を入れるのは
あまりにもコストが大きいからやってないだけだと思う
376デフォルトの名無しさん
2019/01/30(水) 01:45:57.91ID:GE8h//C5 >>369
お前の言ってる事もSTL並みにゴチャゴチャやで。
お前の言ってる事もSTL並みにゴチャゴチャやで。
377デフォルトの名無しさん
2019/01/30(水) 01:56:09.46ID:YAuiBXnQ >>376
STLの方がまだ理屈が通っている分、難解だとしても理解しやすい。
STLの方がまだ理屈が通っている分、難解だとしても理解しやすい。
378デフォルトの名無しさん
2019/01/30(水) 02:00:39.54ID:UPzEtDGO >>362
確かに年2倍は盛ったがシリコンの比例縮小則が続く限りクロックは伸び続けるはず…
リーク電流による爆熱はHigh-Kで対策されたし
マルチコアに向かう流れは業界の怠惰にすぎず、物理的制約のせいではない…!
確かに年2倍は盛ったがシリコンの比例縮小則が続く限りクロックは伸び続けるはず…
リーク電流による爆熱はHigh-Kで対策されたし
マルチコアに向かう流れは業界の怠惰にすぎず、物理的制約のせいではない…!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 故・安倍氏「首相の責任の第一義は国家の平和維持では無いでしょうか☺」👈今思うと正しいよな [152212454]
- 高市早苗「竹島は日本領土」 [834922174]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- あくたんのおまんこって甘そうだよな🤤
- 【速報】慶大、「いじめ加害歴」のある受験生を22人を不合格にしていたwwwwww [339035499]
- 🏡
