次スレを立てる時は本文の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
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で対策されたし
マルチコアに向かう流れは業界の怠惰にすぎず、物理的制約のせいではない…!
379デフォルトの名無しさん
2019/01/30(水) 02:03:01.61ID:TJF4rq85380デフォルトの名無しさん
2019/01/30(水) 02:10:35.13ID:AGTVqw9V std::move、std::forwardと右辺値参照の関係とか特にtemplateが絡むと分かりにくいな。
まぁ、ライブラリ作るときに気をつければ良いだけだから、比較的どうでも良い問題ではあるけど。
STL自体はそんなに難解でもなくない?
コンテナのAllocatorは実際に差し替えて使ってるやつなんてあんまりいないと思うしw
まぁ、ライブラリ作るときに気をつければ良いだけだから、比較的どうでも良い問題ではあるけど。
STL自体はそんなに難解でもなくない?
コンテナのAllocatorは実際に差し替えて使ってるやつなんてあんまりいないと思うしw
381デフォルトの名無しさん
2019/01/30(水) 02:25:53.25ID:stWE4sF7 allocatorに無頓着な人って本当にc++使う必然性あるか考えた方がいいと思う
382デフォルトの名無しさん
2019/01/30(水) 02:35:48.20ID:gkVZVPIY 実際にアロケータ差し替えて使ってるとちょこちょこ「アレ??」
って思うとこはあるんだよね
まぁ文字コード周りがクソと言われがちなのと同じで、
使う奴が少ないところは結構微妙だったりする
(代替案としてpolymorphic memory resourceは出てきたけどまだ使い倒してないからよくわからん、
メモリの確保に普通型なんか関係無いから、型に依存しなくなったのは便利だなと思うけど)
って思うとこはあるんだよね
まぁ文字コード周りがクソと言われがちなのと同じで、
使う奴が少ないところは結構微妙だったりする
(代替案としてpolymorphic memory resourceは出てきたけどまだ使い倒してないからよくわからん、
メモリの確保に普通型なんか関係無いから、型に依存しなくなったのは便利だなと思うけど)
383デフォルトの名無しさん
2019/01/30(水) 02:56:49.38ID:6SCLtJmj 難しいことよくわからんけど、tupleの要素取り出すのがstd::get<index>(var)なの嫌い
var.get(index)になぜ出来なかったの
var.get(index)になぜ出来なかったの
384デフォルトの名無しさん
2019/01/30(水) 03:09:37.94ID:gkVZVPIY indexはコンパイル時定数じゃないといけないし
テンプレート引数だからvar.template get<index>()とか書かないといけないからじゃね
constexprに出来る文脈ならvar.get(index)にできるだろうけど・・
(個人的にはvar.template get<index>()でいいからそう書けるようにもして欲しかったw
テンプレート引数だからvar.template get<index>()とか書かないといけないからじゃね
constexprに出来る文脈ならvar.get(index)にできるだろうけど・・
(個人的にはvar.template get<index>()でいいからそう書けるようにもして欲しかったw
385デフォルトの名無しさん
2019/01/30(水) 07:03:31.67ID:vmEMjO5m pairもarrayも生配列も同じように使えるようにじゃなかったっけ?
同じ理由で今はv.begin()よりstd::begin(v)が推奨されてるよな
同じ理由で今はv.begin()よりstd::begin(v)が推奨されてるよな
386デフォルトの名無しさん
2019/01/30(水) 08:50:33.43ID:1AdXwgl8 あ た り ま え だ が
STLは”勉強していない奴”のことは”想定”していないからな
だから”わかりにくい”とか言ってる奴は”勉強不足”の”論外”な人間なわけ
STLは”勉強していない奴”のことは”想定”していないからな
だから”わかりにくい”とか言ってる奴は”勉強不足”の”論外”な人間なわけ
387デフォルトの名無しさん
2019/01/30(水) 09:01:51.07ID:/QR/gxPZ まあC++は人をふるい落とすための言語だからな。
別に書きやすいわけではない。
別に書きやすいわけではない。
388デフォルトの名無しさん
2019/01/30(水) 09:06:27.12ID:1AdXwgl8 わかりにくいとか使いにくいとかいう批判をされても作ってる人も使ってる人もふーんとしか思ってない
誰にでも使えるようにだとか寄せ集めのチームの生産性を上げるだけとかは全く考えてない
そういうのはC#の仕事
誰にでも使えるようにだとか寄せ集めのチームの生産性を上げるだけとかは全く考えてない
そういうのはC#の仕事
389デフォルトの名無しさん
2019/01/30(水) 12:23:30.32ID:gkVZVPIY 何言ってんだこいつ
390デフォルトの名無しさん
2019/01/30(水) 12:52:40.78ID:tru3FX0q 確かにstlの基本ぐらい勉強しろとおもうけど
標準ライブラリ全体になるとかなり無理げーでしょ
肥大しすぎだわ
説明読んでも意味不明で、意味理解したときはむしろc++に絶望を感じる
作ってる人は使ってるひとのこと考えてるとは思えないね
別に数行短くなるとかどうでもいい
標準ライブラリ全体になるとかなり無理げーでしょ
肥大しすぎだわ
説明読んでも意味不明で、意味理解したときはむしろc++に絶望を感じる
作ってる人は使ってるひとのこと考えてるとは思えないね
別に数行短くなるとかどうでもいい
391デフォルトの名無しさん
2019/01/30(水) 13:39:29.80ID:GE8h//C5 全容把握はやる気せんわ>STL。
上でも出てるけどallocatorみたいな問題あるし、そこは付き合ってらんない。
上でも出てるけどallocatorみたいな問題あるし、そこは付き合ってらんない。
392デフォルトの名無しさん
2019/01/30(水) 14:02:07.62ID:V6i8EwMo393デフォルトの名無しさん
2019/01/30(水) 14:48:48.06ID:Uh+VRScZ shared_ptrとコンテナはまあわからんでもないが
unique_ptrが難しいと騒いでる奴は何が難しいと思ってるのかさっぱりわからない
リアルにも結構いるけど
unique_ptrが難しいと騒いでる奴は何が難しいと思ってるのかさっぱりわからない
リアルにも結構いるけど
394デフォルトの名無しさん
2019/01/30(水) 14:50:08.15ID:uKzqzpGV unique打つのが難しい
395デフォルトの名無しさん
2019/01/30(水) 15:02:56.56ID:1AdXwgl8 ゆ・・・ゆにきゅー・・・
396デフォルトの名無しさん
2019/01/30(水) 15:07:10.83ID:gkVZVPIY >unique_ptrが難しいと騒いでる奴
そんな奴居たか?
そんな奴居たか?
397デフォルトの名無しさん
2019/01/30(水) 17:37:34.50ID:xoRVo/qA 「unique_ptrが難しいから使わないんだ」
「スマポが難しいから使わないんだ」
っていうレベルで考えてるやつがいたとは驚き
周回遅れっすなぁ
「スマポが難しいから使わないんだ」
っていうレベルで考えてるやつがいたとは驚き
周回遅れっすなぁ
398はちみつ餃子 ◆8X2XSCHEME
2019/01/30(水) 17:48:26.91ID:AHrCbFFN >>396
理解が難しいと言ってるやつはあまりいないと思うが、
このスレでは「使いどころが難しい (使える場面は思ったよりずっと少ないのであまり有難みがない)」
という主張はよく出てると思う。
std::unique_ptr の価値を十全に感じたいならば、
一貫して std::unique_ptr を利用する必要があるが、面倒くさいし、
様々なライブラリを組み合わせようとするとそうもいかないこともあるというのは確かにある。
現実は非情である。
私自身はとりあえず部分的な利用であっても、
(少なくともその箇所では) 例外に対して面倒くさい配慮をしなくてよいってだけで充分にありがたいと思うんだけどな〜。
理解が難しいと言ってるやつはあまりいないと思うが、
このスレでは「使いどころが難しい (使える場面は思ったよりずっと少ないのであまり有難みがない)」
という主張はよく出てると思う。
std::unique_ptr の価値を十全に感じたいならば、
一貫して std::unique_ptr を利用する必要があるが、面倒くさいし、
様々なライブラリを組み合わせようとするとそうもいかないこともあるというのは確かにある。
現実は非情である。
私自身はとりあえず部分的な利用であっても、
(少なくともその箇所では) 例外に対して面倒くさい配慮をしなくてよいってだけで充分にありがたいと思うんだけどな〜。
399デフォルトの名無しさん
2019/01/30(水) 18:20:07.90ID:gkVZVPIY いや俺もこないだ色々言ったけど便利だと思うよ
スマポの利便性の否定なんてしてないし使えるときは積極的に使ってる
ただ「全部スマポ使え、そうでないやつのコードは危険」
みたいなアホなこと言い出すやつが出てきて毎回話がおかしくなる
(全部スマポにするのも一つの設計方針ではあると思うけど・・・
どんなメモリ管理のケースにも対応できる、なんて自分は断言できないけどなぁ)
スマポの利便性の否定なんてしてないし使えるときは積極的に使ってる
ただ「全部スマポ使え、そうでないやつのコードは危険」
みたいなアホなこと言い出すやつが出てきて毎回話がおかしくなる
(全部スマポにするのも一つの設計方針ではあると思うけど・・・
どんなメモリ管理のケースにも対応できる、なんて自分は断言できないけどなぁ)
400デフォルトの名無しさん
2019/01/30(水) 18:32:35.81ID:bIZhf79S 半角カナのときと似てるな
401デフォルトの名無しさん
2019/01/30(水) 18:47:36.15ID:Etz6JgfQ スマポ使わない奴は死刑にする法律ができても良いくらい。
スマポを使わなかったせいで飛行機が落ちたり電車が衝突したりしてるからな。
住之江の自動運転が衝突したのもスマポ使ってれば防げたしな。
何人殺せばスマポ使うようになるんだってお話。
スマポを使わなかったせいで飛行機が落ちたり電車が衝突したりしてるからな。
住之江の自動運転が衝突したのもスマポ使ってれば防げたしな。
何人殺せばスマポ使うようになるんだってお話。
402デフォルトの名無しさん
2019/01/30(水) 22:03:27.11ID:gkVZVPIY スマポで物理的な障害を防げるのか
万能だな
万能だな
403デフォルトの名無しさん
2019/01/30(水) 22:05:55.39ID:GTSr1lmt プログラムの小さいバグで大事故は割とある話
スマポ案件は知らないが
スマポ案件は知らないが
404デフォルトの名無しさん
2019/01/30(水) 22:12:36.60ID:KxSBU/Xz 数値計算のオーバーフローだかゼロ除算だかでスペースシャトル落ちたんやで
405デフォルトの名無しさん
2019/01/30(水) 22:12:59.37ID:icd7+TXR そんなに凄いなら、次世代OSでも採用されるでしょうね
406デフォルトの名無しさん
2019/01/30(水) 22:27:00.90ID:gkVZVPIY いや、住之江 自動運転 衝突 で調べたら物理だったw
407デフォルトの名無しさん
2019/01/30(水) 22:27:27.73ID:GE8h//C5 bool 値インクリメントで放射線事故なんてのもある。
スマポだって要らんretainして事故が起きる可能性がある。
エラーを防ぐのは人の仕事であって言語や処理系、ライブラリではない。
スマポだって要らんretainして事故が起きる可能性がある。
エラーを防ぐのは人の仕事であって言語や処理系、ライブラリではない。
408デフォルトの名無しさん
2019/01/30(水) 23:40:14.23ID:Etz6JgfQ >>407
ならスマブ発明しろよ。
ならスマブ発明しろよ。
409デフォルトの名無しさん
2019/01/30(水) 23:58:05.04ID:GTSr1lmt boolのインクリメントはもう駄目にならんかったっけ
410デフォルトの名無しさん
2019/01/31(木) 01:03:44.53ID:1/qzJ5j1 ブールの++は禁止されるね。
スマートブール つ
struct Bool {
enum class Value { True, False };
Value value;
// その他I/Fはお好みで、でも++とか上書きしないように。
};
スマートブール つ
struct Bool {
enum class Value { True, False };
Value value;
// その他I/Fはお好みで、でも++とか上書きしないように。
};
411デフォルトの名無しさん
2019/01/31(木) 11:58:25.10ID:xxTKFGAk412デフォルトの名無しさん
2019/01/31(木) 12:04:22.91ID:AG1iGZmY やるなとお達しがきたことをやろうとするなよ
413デフォルトの名無しさん
2019/01/31(木) 12:41:33.66ID:1/qzJ5j1 struct を class に置き換えるなり好きに使えよアホ。挙動に制限つけたブール定義するのは簡単って意味。多少面倒でも人殺すよりまし。
キャストとかimplicitコンストラクタとか型安全な範囲で定義してね。
思考力無いんか? 猿なの? お前みたいなの職場にいたらガン無視。ナスと出世目の前にぶら下げて使い倒して、年食ったら捨てるわ。
キャストとかimplicitコンストラクタとか型安全な範囲で定義してね。
思考力無いんか? 猿なの? お前みたいなの職場にいたらガン無視。ナスと出世目の前にぶら下げて使い倒して、年食ったら捨てるわ。
414デフォルトの名無しさん
2019/01/31(木) 13:10:00.69ID:xxTKFGAk415デフォルトの名無しさん
2019/01/31(木) 13:31:27.74ID:1/qzJ5j1 バカに物事を説明すんの大変なの忘れてたわ。
416デフォルトの名無しさん
2019/01/31(木) 13:43:59.16ID:sy1gbegF 大入するときいちいちBool::Value::Trueとかってやるの?
417デフォルトの名無しさん
2019/01/31(木) 13:57:43.91ID:1/qzJ5j1 ラフスケッチって言葉知ってる?
418デフォルトの名無しさん
2019/01/31(木) 16:17:54.16ID:VRtcylyh ラフスケッチだったのか
下手すぎて知恵遅れの落書きと区別付かんかったわ
下手すぎて知恵遅れの落書きと区別付かんかったわ
419デフォルトの名無しさん
2019/01/31(木) 16:53:45.33ID:Z74WfsQD このスレって、昔デパートの屋上とかでやってた
マングースvsコブラみたいなおもしろさがあるな
マングースvsコブラみたいなおもしろさがあるな
420デフォルトの名無しさん
2019/01/31(木) 17:57:23.79ID:yYR5uNJo こういうつまらんネタに食いついたら負け
421デフォルトの名無しさん
2019/01/31(木) 18:40:23.44ID:EoQh+WIC キャットファイトでしょうに
422デフォルトの名無しさん
2019/01/31(木) 19:14:06.04ID:1/qzJ5j1 落書きレベルのトリックで回避できる問題が10年以上放置されてるのがC++。
423デフォルトの名無しさん
2019/01/31(木) 19:31:16.26ID:kVV1KZIE >>410だと何がスマートになるの?
trueとfalseは逆にするとして。
trueとfalseは逆にするとして。
424デフォルトの名無しさん
2019/01/31(木) 19:48:03.87ID:1/qzJ5j1 暗黙型変換と人が「普通に」書いてしまう演算からbool値の持つ論理的な意味を守れる。
425はちみつ餃子 ◆8X2XSCHEME
2019/01/31(木) 19:53:56.29ID:/EjhL9q2 bool は整数型のカテゴリに入ってるから
整数型同士の演算の中ではうっかり int に昇格されたりするんよ。
整数型同士の演算の中ではうっかり int に昇格されたりするんよ。
426デフォルトの名無しさん
2019/01/31(木) 20:36:17.65ID:/iSEbovL だったらexplicit operator boolも書いとけばいいのに
誰でも落書きできる所までしか書かないから知恵遅れに見える
誰でも落書きできる所までしか書かないから知恵遅れに見える
427デフォルトの名無しさん
2019/01/31(木) 20:48:55.70ID:MHcg0e3g boolの問題なんてさんざん語りつくされてる話題なわけで
そんなにいきり立つのも知恵遅れに見えるんだが
そんなにいきり立つのも知恵遅れに見えるんだが
428デフォルトの名無しさん
2019/01/31(木) 20:52:11.62ID:AG1iGZmY そもそもこのスレに新規性なんかないじゃん
429デフォルトの名無しさん
2019/02/01(金) 18:33:11.64ID:yTOsL8ZZ pimplって具体的に何が凄いのが実感出来ない‥
実感できるコード例ってありませんか?
実感できるコード例ってありませんか?
430デフォルトの名無しさん
2019/02/01(金) 19:20:32.36ID:F7i5oL97 コード例は示せないけど
dllとかlib作るときに使ってみるといいと思う
dllとかlib作るときに使ってみるといいと思う
431デフォルトの名無しさん
2019/02/01(金) 19:48:57.61ID:poPQewMk つまんないもん見せなくて済むじゃないか
432デフォルトの名無しさん
2019/02/01(金) 20:06:34.47ID:fyiIuKBL 実装を隠したいときに必須なんだが
隠す必要を感じてない人に説明するのは難しいんだよな
必要ない人は一生必要ないからね
隠す必要を感じてない人に説明するのは難しいんだよな
必要ない人は一生必要ないからね
433デフォルトの名無しさん
2019/02/01(金) 20:26:30.63ID:cIYuVXTd 必須ではないがな
他にも方法はある
他にも方法はある
434デフォルトの名無しさん
2019/02/01(金) 20:35:32.21ID:cfE6zEWc435デフォルトの名無しさん
2019/02/01(金) 20:44:11.59ID:h+AyUO7a インターフェース準備してスマポ返せばええやんけpimplなんぞいらんしって思いました
436デフォルトの名無しさん
2019/02/01(金) 20:46:34.12ID:cfE6zEWc >>435
設計の本には、実装を隠ぺいすることで変更に強くなると書いてあるけど、Qt見ると、いい部分も悪い部分もあるね。
設計の本には、実装を隠ぺいすることで変更に強くなると書いてあるけど、Qt見ると、いい部分も悪い部分もあるね。
437デフォルトの名無しさん
2019/02/01(金) 20:47:43.65ID:cfE6zEWc 各種OSに対応するには、pimplが良かったのかもしれない。
438デフォルトの名無しさん
2019/02/01(金) 20:50:18.54ID:h+AyUO7a 実装を隠したいならインターフェース使うだけでいい
インターフェースと比べた時にピンプルにはこれといってメリットはない
インターフェースと比べた時にピンプルにはこれといってメリットはない
439デフォルトの名無しさん
2019/02/01(金) 20:55:50.49ID:cfE6zEWc440デフォルトの名無しさん
2019/02/01(金) 20:56:30.95ID:V+NZiA0Z コンパイル時間が短くなるのがpimplの利点で実装を隠蔽出来るのは副次的なものと何処かで見た気がする
441デフォルトの名無しさん
2019/02/01(金) 21:02:05.52ID:F7i5oL97 pimplの利点は依存ヘッダを減らせることだと思ってる
真のprivateとかに感動してる人いるけど、あれはなんか違う・・・
真のprivateとかに感動してる人いるけど、あれはなんか違う・・・
442デフォルトの名無しさん
2019/02/01(金) 21:07:03.72ID:sG4RlIjp 開発の効率化=pimpleの利点。
小さな変更で全ビルド5分待ちはやってられん。
一々ヘッダにこんなもん書くかよ、って思ったり思わせたりしないで済む。
小さな変更で全ビルド5分待ちはやってられん。
一々ヘッダにこんなもん書くかよ、って思ったり思わせたりしないで済む。
443デフォルトの名無しさん
2019/02/01(金) 21:49:44.81ID:cIYuVXTd444デフォルトの名無しさん
2019/02/01(金) 21:51:57.86ID:cIYuVXTd 組み込みやってる身としてはpimplは中でnewかまされるのが困る
インターフェースも同様
インターフェースも同様
445デフォルトの名無しさん
2019/02/01(金) 22:26:16.19ID:F7i5oL97 同じことを思ってplacement newでやる奴を昔作ったけど、std::launderがないと辛かった
446デフォルトの名無しさん
2019/02/01(金) 22:26:54.36ID:q6HbkB1M 別にnewしなても代わりにobj[1000]から&obj[0]、&obj[1]、&obj[2]、…を返すファクトリーにしたら良いんじゃ…
447デフォルトの名無しさん
2019/02/01(金) 22:38:43.24ID:x/1+NmNy 無名namespaceもいいもんだよ
448デフォルトの名無しさん
2019/02/01(金) 22:54:58.73ID:2kCPE8R8 コンパイルエラーで見づらくなるから使わねーわ
449デフォルトの名無しさん
2019/02/01(金) 23:17:25.49ID:q6HbkB1M クラスの定義をファイルスコープ(風)にしたいときは無名namespaceを使うしかない
static class Foo { ... };と書けたら良いのに!
static class Foo { ... };と書けたら良いのに!
450デフォルトの名無しさん
2019/02/01(金) 23:45:38.78ID:j6iAMD6D private namespaceはよ
451デフォルトの名無しさん
2019/02/01(金) 23:56:09.24ID:F7i5oL97 nemaspace templateが欲しいとたまに思う
452デフォルトの名無しさん
2019/02/01(金) 23:58:16.64ID:h+AyUO7a ここまでピンプルのメリットすべてインターフェースでも得られる件
・実装隠蔽
・コンパイル時間短縮
・依存ヘッダ最小化
やはり無駄なイディオムだったか
無意味にテクニカルに見せかけてカッコつけたかっただけだろ
・実装隠蔽
・コンパイル時間短縮
・依存ヘッダ最小化
やはり無駄なイディオムだったか
無意味にテクニカルに見せかけてカッコつけたかっただけだろ
453デフォルトの名無しさん
2019/02/02(土) 00:15:52.64ID:xBrfKG0X インターフェースで依存ヘッダ最小化できるの?
454デフォルトの名無しさん
2019/02/02(土) 00:19:23.04ID:hwq9uAM7 >>452
なんでお前が勝ち誇ってんだよw
なんでお前が勝ち誇ってんだよw
455デフォルトの名無しさん
2019/02/02(土) 00:22:54.25ID:hwq9uAM7 上にもあるけどコンストラクタ使えないのは大きな制約だろ
456デフォルトの名無しさん
2019/02/02(土) 15:28:45.27ID:YXCix+RL わざと変な名前の名前空間使ってるわ。
なんやらかんやら_WorkingNamespace とか。
なんやらかんやら_WorkingNamespace とか。
457デフォルトの名無しさん
2019/02/02(土) 16:20:02.86ID:db88iM+8 変な名前にしなくてdetailかimplでいいぞ
458デフォルトの名無しさん
2019/02/02(土) 18:17:31.28ID:waqQgiJK >>455
factoryはだめなの?
factoryはだめなの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【未成年NISA】つみたて枠、18歳未満は600万円上限 12歳で引き出し可能 [蚤の市★]
- 高市早苗「竹島は日本領土」 [834922174]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- あくたんのおまんこって甘そうだよな🤤
- 暖房やめて湯たぼんにしようと思ってる
- 🏡
- お前らが意地でも田村ゆかりと結婚してあげない理由
