1 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 00:03:49.04 ID:Hj6igpz/.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ: C++相談室 part127 echo.2ch.net/test/read.cgi/tech/1474636291/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ■ shared_ptr で 標準ライブラリのFILE構造体ポインタをラップしよう class FILE_Ptr : public shared_ptr<FILE> { struct FILEDeleleter { void operator() (FILE* fp) const { if (fp != NULL) { fclose(fp); }} }; public: FILE_Ptr(FILE* fp = NULL) : shared_ptr<FILE>(fp, FILEDeleleter()) {} operator FILE* () { return get(); } template<typename T> bool operator == (const T& obj) const { return get() == reinterpret_cast<FILE*>(obj); } template<typename T> bool operator != (const T& obj) const { return get() != reinterpret_cast<FILE*>(obj); } };
41 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 14:50:05.59 ID:w634zOe4.net] 今時STLはないだろ
42 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:08:20.29 ID:P/uIEXU4.net] >>33 STLで十分と思うことは、別にレベルが低いとはならない。 STLで十分と思うことがレベルが低いというのは、レベルが低いと思う。 自分を卑下する書き込みをしつつ、高尚なこと考えている俺カッケーと酔いしれてないか?
43 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:26:29.03 ID:BLqqs723.net] それは己ちゃうんかいw
44 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:55:56.37 ID:3Qbc/l9n.net] >>42 ド素人の背伸びなんだからほっといてやれよw 下手につつくと居付いちゃうぞ
45 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:56:46.93 ID:SqUFXM7z.net] >>37 それってlistじゃないの?
46 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:57:37.51 ID:SqUFXM7z.net] >>45 失礼連続前提ね
47 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 16:32:55.67 ID:42UX/YwI.net] 理解出来ないと時代遅れと言って反応を見ているんだろうが端から見ていて痛々しい限りだ
48 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 16:49:01.91 ID:2ZVZJ+KM.net] STLが理解できない? お前さんだけじゃねw+
49 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 17:08:21.71 ID:LAFeCFqG.net] コンテナ、イテレータ、アルゴリズムの組合せ、という根っこにある考え方でまあ上手く行ってたんだけど、 今となってはちょっと古びた感じはするね。 <algorithm>のごちゃついた様を見るとそういうふうに思う。
50 名前:デフォルトの名無しさん [2016/11/27(日) 18:02:33.78 ID:Hj6igpz/.net] >>42 のような面白い返答があったのでそろそろ真意を正直に書くと、 コンテナ自作派に憧れるていを取りつつコンテナ自作派をバカにしてただけだ。 「任天堂の倒し方知ってる」とか「ぼくのかんがえたさいきょうのこんてな」とか例えてる時点で コンテナ自作派をバカにしてると君らに察してもらえるだろうと思ってたのだが、 本当にコンテナ自作派に憧れているとストレートに解釈した人が出てきて楽しかったわ。 >>37 「空き」の定義は開発者が決めなければならない。 コンテナに突っ込むクラスに「空き」フラグを扱うメンバ変数を追加すればSTLコンテナ利用で解決することを わざわざ車輪の再発明でコンテナまで自作する人をおだててバカにするのは実に楽しい。
51 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 18:11:22.15 ID:MAcCGYLn.net] >コンテナ自作派をバカにしてると君らに察してもらえるだろうと思ってた これは思った。気付かない奴はアスペ
52 名前:デフォルトの名無しさん [2016/11/27(日) 19:37:37.43 ID:YEwu7XTV.net] 俺も諄いなーと思いつつ黙って見てたけど、ストーレートに解釈してるやつが居るのみてビックリしたのと同時に、こんなに純真な心で2chやってて大丈夫なのかと心配になったわ。 あと、だからこのスレよく荒れてるんだなぁと納得した。
53 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 19:49:28.80 ID:4JtqQJ1X.net] ゲームとかなら、汎用性よりスピード命や小メモリとかで俺会社のSTLを作ってそうなきがするが ゲーム制作会社とかではしているところはないのかな >>1 はなんでshared_ptrのFILE deleterを張っているんだ C++ならFILEじゃなくfstreamだろって気がするが
54 名前:デフォルトの名無しさん [2016/11/27(日) 20:14:35.31 ID:Hj6igpz/.net] >>53 あまりにも ID:Hj6igpz/ が無能すぎて fstream を使いこなせないからだよ。みなまで言わせんな恥ずかしい。 アホな ID:Hj6igpz/ は>>1 のラッパークラス FILE_Ptr を使って以下のように稚拙なコードを書く傾向がある。 こんなことやってるからいつまでたっても ostream系を使いこなすスキルが育たない。ID:Hj6igpz/ は C++プログラマに向いてないよ。 { FILE_Ptr fp = fopen("foo.log", "w"); if (fp != NULL) { fprintf(fp, "1hello world\n"); fputs("2howdy world\n", fp); fwrite("3hello world\n", 13, 1, fp); } }
55 名前:デフォルトの名無しさん [2016/11/27(日) 20:42:29.48 ID:pUctI5IC.net] fstreamはfstreamで20余年の付き合いを経てもいまだにイミフなとこあるし
56 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 20:47:34.07 ID:P/uIEXU4.net] >>50 お前さんの真意とやらはどうでもいいから、面倒くさいことせずに、初めからもっと直接的に意味のある議論をしてほしい。 ここまでの流れで唯一ためになったのは、>>52 のレスにあった「諄い」という漢字を知ったということだけだ。
57 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 20:49:47.24 ID:P/uIEXU4.net] >>53 ゲーム会社のことはよく知らないけど、そういうのはアロケータの自作でもしてるのかな。
58 名前:デフォルトの名無しさん [2016/11/27(日) 21:04:15.44 ID:zEm283RN.net] ゲームエンジン・アーキテクチャによると コンテナを自作するのは普通らしい
59 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 21:13:33.19 ID:kJvliJ+f.net] >>54 それ以前に、FILE"Deleleter"ってわざとしているのか それともdeleteのスペル知らないのか deleteはC++のキーワードだよな operator FILE* () はcons抜けだし
60 名前:デフォルトの名無しさん [2016/11/27(日) 21:46:20.25 ID:Hj6igpz/.net] >>59 何しろ無能だからこんなもんだろう。生温かく見守ってやれ。
61 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 21:54:20.66 ID:IYfuOepr.net] >>53 有名なのだとEASTLでオープンソース化されてる ttp://i-saint.hatenablog.com/entry/20101012/1286822888 ttps://github.com/electronicarts/EASTL
62 名前:デフォルトの名無しさん [2016/11/27(日) 21:59:03.95 ID:WW/pNH6a.net] ベンチ取ってみたらどうか。 僕の古典的PCしかもノートでも驚くほど速い。 意外と問題にならない程度の速度を持っているのではないか。
63 名前:デフォルトの名無しさん [2016/11/27(日) 22:00:05.48 ID:Hj6igpz/.net] >>59 勉強する良い機会になった。ありがとう。 https://ja.wikipedia.org/wiki/Cons
64 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 00:27:42.27 ID:nFYh94sG.net] type erasureのためだけにshared_ptrを持ち出さなければならないクソ言語
65 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 13:41:28.68 ID:VFe8unWC.net] SSEのイントリンシック使うとき16バイト境界にアライン必須なんで stlに入れるとき用にアロケータだけ自作したことはあるな(コンテナの型自体変わってしまうので不便だけど EASTLは知らんかった、家帰ったら使ってみよう
66 名前:デフォルトの名無しさん [2016/11/28(月) 17:31:28.84 ID:w/GpYaDf.net] >>61 docディレクトリの文書でEAの中の人がSTLについて熱く語っているのが好感を持てた。
67 名前:デフォルトの名無しさん [2016/11/28(月) 21:08:56.39 ID:w/GpYaDf.net] EASTL にベンチマークプログラム があったのでWindows10(x86)の Visual Studio 2017 RC でビルド&実行してみた。 以下は、そのベンチマークプログラム EASTLBenchmarks.exeの標準出力結果 **************************************************************************************** EASTL Benchmark test results **************************************************************************************** EASTL version: 3.04.00 Platform: Windows on X86 Compiler: Microsoft Visual C++ compiler, version 1910 Allocator: PPMalloc::GeneralAllocator. Thread safety enabled. Build: Full optimization. Inlining enabled. Values are ticks and time to complete tests; smaller values are better. Test VC++ Dinkumware EASTL Ratio Difference? --------------------------------------------------------------------------------------------------------------------- algorithm/adj_find/vector<TestObject> | 699814 699.8 us | 913513 913.5 us | 0.77 - algorithm/copy/vector<LargePOD> | 270367 270.4 us | 269001 269.0 us | 1.01 algorithm/copy/vector<uint32_t> | 8193 8.2 us | 5462 5.5 us | 1.50 + algorithm/copy_backward/vector<LargePOD> | 280267 280.3 us | 274463 274.5 us | 1.02 algorithm/copy_backward/vector<uint32_t> | 3072 3.1 us | 3414 3.4 us | 0.90 algorithm/count/vector<uint64_t> | 270367 270.4 us | 266271 266.3 us | 1.02 algorithm/equal_range/vector<uint64_t> | 10268141 10.3 ms | 22004184 22.0 ms | 0.47 -
68 名前:デフォルトの名無しさん [2016/11/28(月) 21:12:50.29 ID:w/GpYaDf.net] >>67 の続き。途中省略で末尾だけ記載する。 vector<AutoRefCount>/erase | 2132212 2.1 ms | 2128798 2.1 ms | 1.00 vector<MovableType>/erase | 124073512 124.1 ms | 121713608 121.7 ms | 1.02 vector<MovableType>/reallocate | 2317236 2.3 ms | 2053355 2.1 ms | 1.13 vector<uint64>/erase | 11193260 11.2 ms | 11209646 11.2 ms | 1.00 vector<uint64>/insert | 9193159 9.2 ms | 9221835 9.2 ms | 1.00 vector<uint64>/iteration | 68957 69.0 us | 68957 69.0 us | 1.00 vector<uint64>/operator[] | 106166 106.2 us | 86368 86.4 us | 1.23 vector<uint64>/push_back | 2452078 2.5 ms | 1394507 1.4 ms | 1.76 + vector<uint64>/sort | 8286133 8.3 ms | 7735840 7.7 ms | 1.07 sum | 871753892 871.8 ms | 768601049 768.6 ms | 1.13 **************************************************************************************** Time to complete all tests: 3.66 s. RETURNCODE=0
69 名前:デフォルトの名無しさん [2016/11/28(月) 21:22:19.20 ID:w/GpYaDf.net] >>68 の続き。 188個あったテスト項目のうち、71個がEASTL有利、10個がSTL有利、107個が互角という結果になった。 以下に、参考までにEASTL有利だった項目を良い成績順にベスト10を記す。 algorithm/find_end/string/end | 600816 600.8 us | 25945 25.9 us | 23.16 + deque<ValuePair>/push_back | 5864095 5.9 ms | 880058 880.1 us | 6.66 + deque<ValuePair>/push_front | 6016006 6.0 ms | 1031627 1.0 ms | 5.83 + deque<ValuePair>/operator[] | 4007712 4.0 ms | 693327 693.3 us | 5.78 + hash_map<uint32_t, TestObject>/count | 264563 264.6 us | 56326 56.3 us | 4.70 + deque<ValuePair>/find | 1577482 1.6 ms | 381996 382.0 us | 4.13 + algorithm/find_end/string/middle | 579650 579.6 us | 148497 148.5 us | 3.90 + string<char8_t>/operator[] | 133476 133.5 us | 34820 34.8 us | 3.83 + string<char16_t>/operator[] | 133477 133.5 us | 35844 35.8 us | 3.72 + algorithm/lex_cmp/schar[] | 137914 137.9 us | 39941 39.9 us | 3.45 +
70 名前:デフォルトの名無しさん [2016/11/28(月) 21:47:38.32 ID:w/GpYaDf.net] >>69 の続き。上述のランキングをさらに11位から25位まで追記しておく。 algorithm/search/string<char> | 934678 934.7 us | 285728 285.7 us | 3.27 + algorithm/rotate/vector<TestObject large> | 161470 161.5 us | 58716 58.7 us | 2.75 + hash_map<uint32_t, TestObject>/operator[] | 343762 343.8 us | 129722 129.7 us | 2.65 + hash_map<uint32_t, TestObject>/find | 177172 177.2 us | 67250 67.3 us | 2.63 + map<TestObject, uint32_t>/clear | 90805 90.8 us | 35162 35.2 us | 2.58 + string<char16_t>/swap | 78515 78.5 us | 30723 30.7 us | 2.56 + bitset<1500>/count | 14115750 14.1 ms | 6574833 6.6 ms | 2.15 + hash_map<string, uint32_t>/count | 946967 947.0 us | 443784 443.8 us | 2.13 + deque<ValuePair>/insert | 28192924 28.2 ms | 13517665 13.5 ms | 2.09 + bitset<75>/count | 1468243 1.5 ms | 700838 700.8 us | 2.09 + string<char16_t>/insert/pos,p | 1060986 1.1 ms | 513424 513.4 us | 2.07 + hash_map<string, uint32_t>/find_as/char* | 947992 948.0 us | 461194 461.2 us | 2.06 + string<char16_t>/find/p,pos,n | 66859496 66.9 ms | 33442208 33.4 ms | 2.00 + bitset<75>/flip | 400772 400.8 us | 200727 200.7 us | 2.00 + set<uint32_t>/count | 1733147 1.7 ms | 870841 870.8 us | 1.99 +
71 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 22:16:01.54 ID:aUTLhSnb.net] キモッ
72 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 22:29:08.06 ID:nxkexmqL.net] EASTLにコンテナの範囲外アクセスチェックとかのデバッグ機能ってある? 自分でもやってみるけど知ってる人いたら教えて欲しい
73 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 03:57:58.52 ID:JKfAWAo3.net] C++派八策 1.C++で書けばパフォーマンスが良くなる。なぜならパフォーマンスが良くなるまでC++書くからだ。 これを頭に叩き込め。 2.常にC++で書いておればそのうち他の要因でパフォーマンスが良くなるときが来る。 そのときに思い切りC++の手柄を主張しろ。 3.いいことはC++の手柄、悪いことは他の要因のせいにしろ。 4.データは都合のいいところだけ使え。グラフは切貼りしろ。 5.タイムラグを上手く使え。 6.「これがC++だ」と明言するな。定義を問われたら「C++の本を読め」と言っておけ。 7.批判されたら「お前はC++を理解してない」と言え。 8.いざとなったら定義を変えろ。オブジェクト指向に固執するな。
74 名前:デフォルトの名無しさん [2016/11/29(火) 06:49:46.04 ID:nF3eDud1.net] boost spiritって LL(∞)パーサー生成すんの? PEGパーサー生成するの? LL法とPEG法wikipedia両方の実装例にこの名前のってあるんだけど それとも両方とも実装してるの?
75 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 10:54:07.14 ID:FnERKnae.net] 菅官房長官「ちょっと何言ってるかわかんない」
76 名前:デフォルトの名無しさん [2016/11/29(火) 13:08:19.85 ID:nF3eDud1.net] 4行目の「法」と「w」の間に格助詞の「の」が入る予定でした
77 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 13:44:34.04 ID:CM7LOPnj.net] プログラム的にいうと LLは実装で使うアルゴリズムのひとつ PEGは仕様を定義する表現(言語)のひとつ で対立・排他関係にあるわけではない boost.spiritはPEG形式で与えられたルールから構文解析器を作成するライブラリ (作成された解析器はLL法で入力を解析する)
78 名前:デフォルトの名無しさん [2016/11/29(火) 18:41:17.09 ID:nF3eDud1.net] >>77 ど素人の私にわざわざ回答をくださってありがとうございます。 これからも勉強に励みます
79 名前:デフォルトの名無しさん [2016/11/29(火) 18:46:41.16 ID:GF2v+9TM.net] boost spiritってEBNFじゃなくてPEGだったんだな 使わんからどうでもいいが
80 名前:デフォルトの名無しさん [2016/11/29(火) 20:31:51.74 ID:baTvYruL.net] いま趣味で囲碁ソフト作ってるんだけど Cなんすよ。 いろいろ面倒なんでC++で 作りなおそうかと思案中です。 作成の労力は何割ぐらい 軽減するでしょうか?
81 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 20:47:31.45 ID:DmRk6e1B.net] 増す
82 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 20:55:01.08 ID:1SK7brxW.net] その質問に答えられる人は誰一人としていないが 少なくともCより面倒になることは(熟練したC++プログラマなら)ありえないから チャレンジしてみる価値はある ただし、()の中が重要で、熟練したプログラマなら、という話 君がすごく筋がよいならC++はきっと役に立つはず 一方で筋が悪いというのはC++においては余計なことをやろうとすること 余計なことさえしなければ、Cより面倒になることはあり得ないし 逆に心に邪念があれば、Cとは別の意味で面倒な樹海に迷い込む C++は書く人の心の中を映す鏡
83 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:09:35.06 ID:glNciwx+.net] Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、 JS(ES5), Flash, PHP, C++, Java, C#, Python に書き出せる。 Windows8.1対応。IDEは、FlashDevelop このサイトで、ブラウザでプログラミングして、実行できる Try Haxe ! try.haxe.org/ Haxeプログラミング入門、尾野政樹、2015
84 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:16:52.64 ID:bPmZgvzu.net] >>83 このコピペ時々見るけどヘイトHaxeの効果抜群だな
85 名前:デフォルトの名無しさん [2016/11/29(火) 21:19:45.31 ID:X8I97SOu.net] >>80 レートどんくらい? いちおープラスなんか?
86 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:24:49.77 ID:Ofu9bBqm.net] >>84 せやな。Mindに手を出すわ
87 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:42:26.41 ID:8ZPVrbbC.net] >>80 お前の能力によるとしか言えないんじゃないのか ソースコードの量が多いと今のCをC++へ作り直す工程はかなりの労力だろな
88 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 21:44:01.60 ID:ua9E/pwR.net] いや、>>80 は絶対にC++で書き直すべきだ!!
89 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 06:56:30.70 ID:UPCsGfLr.net] C++を「Cにvectorとかstringなんかの便利な型を追加した言語」と 割り切って使うなら手間は増えないんじゃないかな。 でも実際にC++で書き始めると、C++らしい書き方をしないと 恥ずかしいみたいな気持ちになって深みにはまることが多い。
90 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 07:12:30.65 ID:HOaAIIiu.net] >>80 がgithubにソースを晒せば解決
91 名前:デフォルトの名無しさん [2016/11/30(水) 07:35:10.92 ID:60EZvxwk.net] 三割くらい減る
92 名前:デフォルトの名無しさん [2016/11/30(水) 08:50:24.62 ID:AmbpRVJT.net] Cでいったん書いたんなら、そのときの反省点が色々あるだろ それを踏まえてより上手くまとめるにはC++はいいツールだぜ
93 名前:デフォルトの名無しさん [2016/11/30(水) 09:01:18.76 ID:WcEJDmm/.net] ぼくのかんがえるC++にしかできない超強力3大機能。 ・自動的なデストラクタ呼び出し。 ・moveコンストラクタと右辺値参照。 ・ラムダ。
94 名前:デフォルトの名無しさん [2016/11/30(水) 09:03:12.26 ID:WcEJDmm/.net] 下の根の乾かないうちに訂正。 ぼくのかんがえるC++にしかできない超強力3大(5大?)機能。 ・自動的なデストラクタ呼び出し。 ・moveコンストラクタと右辺値参照。 ・templateとlambda。
95 名前:デフォルトの名無しさん [2016/11/30(水) 09:05:34.45 ID:WcEJDmm/.net] exceptionとRTTIはよく使うけど次点。 異論反論はもちろん認める。
96 名前:デフォルトの名無しさん [2016/11/30(水) 09:15:29.34 ID:60EZvxwk.net] RTTIは使わないな 使うなって偉い人が言ってるし
97 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 09:19:23.91 ID:mG9+BxSG.net] なんで?(殺意)
98 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 10:01:29.94 ID:2V+M5QrA.net] RAIIの間違いじゃね? RTTIをよく使うって違和感ある。
99 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 10:25:44.68 ID:TMG+JuRV.net] 話題になっていた STLと標準ライブラリと違うもの?
100 名前:デフォルトの名無しさん [2016/11/30(水) 11:41:28.64 ID:AmbpRVJT.net] typeidをデバッグや実験でなく実用で使ったことが確かにないなあ C++例外は嫌々しぶしぶ使ってるけど、クソすぎてため息
101 名前:デフォルトの名無しさん [2016/11/30(水) 12:37:13.96 ID:60EZvxwk.net] 例外ってなんか悪い部分あるの?
102 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:51:41.03 ID:zOzS6ENl.net] ???部にどの様な記述でコンパイルできるのですか? #include <iostream> #include <vector> template<class T> class Point{ public: Point(T x,T y):m_x(x),m_y(y){} private: T m_x; T m_y; }; int main( int argc, char *argv[] ) { Point<int> p1(0,0); Point<double> p2(0.0,0.0); std::vector<Point<???>> vpoints; vpoints.push_back(p1); vpoints.push_back(p2); return 0; }
103 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 13:02:54.90 ID:7bek9hnS.net] エラーメッセージは?
104 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 13:08:22.75 ID:0DxS4g7L.net] 親クラス用意しなきゃ無理じゃね?
105 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 13:16:41.10 ID:7bek9hnS.net] あ、今意味がわかった それやるならunion用意するかな そもそも同じvectorにする意味がわからないけど・・・
106 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 13:21:49.66 ID:TMG+JuRV.net] >>105 プログラム的に意味があるかどうかなんか問題ではないだろ それ言い出したら、 push_backした後なにもせずにプログラムが終了しているんだから push_backする必要ないだろ
107 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 13:47:54.21 ID:kcnEUqeY.net] >>102 そこをどの様に記述してもコンパイルはできない そのPoint<int>とPoint<double>はそれぞれなんの関係もない独立した型であって 相互に変換や代入などはできないから
108 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 14:23:43.41 ID:X0PK+rS4.net] >>99 STLは前世紀にどこかのメーカーが作ったライブラリ 便利なので広まって標準ライブラリの礎となった 最新のバージョンは3.3で今でもダウンロードできる 対応する環境はMS C++ Ver.5とかgcc 2.9とかだと思う
109 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 14:26:14.29 ID:TMG+JuRV.net] 標準ライブラリっていってもパクリってこと?
110 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 15:43:30.08 ID:tnQQtKaj.net] パクリでもなんでも、便利そうなものは標準に取り入れる意味があるんだよ さもなくば、コンパイラごとに違ったSTLとか嫌だろ
111 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 16:25:16.47 ID:34Y1lEhk.net] C++例外は、明らかにJavaやC#のそれに比べて親切度において劣る。 どこからジャンプしてきたかの呼び出し履歴をとれないのはあまりに大きい。
112 名前:デフォルトの名無しさん [2016/11/30(水) 16:53:47.96 ID:34Y1lEhk.net] EASTLを Visual Studio 2017 RC で使って感じたこと。 ・なるほど少し速いかも、なレベル。悪くない。むしろ良い。 ・仕事ではなく趣味や学習目的で扱う分には、手本としてもオススメできる。 ・既存のstdとeastlを混在利用することは可能だが要注意。 ・EASTLに限らずテンプレートの宿命だが、プログラマ側ソースコードのどの箇所がエラー原因なのか場所を特定しずらい。 具体的に困ったこと。いずれも対策を講じて解決済み。 ・eastlで作ったコンテナをうっかり std::random_shuffle() にいれると、どのライブラリの swap() を呼ぶかコンパイラがわからずエラーになる。 eastl::shuffle()に置き換えて、第三引数の乱数生成器は stdの<random>の乱数生成器を使って対処した。 ・eastl::make_shared<>(args...) で Gdiplus::Bitmapの梟雄ポインタのインスタンスを作ろうとすると 引数2つ渡すGdiplus::GdiplusBaseのnew演算子が定義されてないとかで、エラーになる。 従来通り、new Gdiplus::Bitmap(...) で作ったものを渡して対処した。
113 名前:デフォルトの名無しさん [2016/11/30(水) 17:29:43.03 ID:AmbpRVJT.net] noexceptがデフォじゃないのが許せん
114 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 19:00:58.85 ID:j7/lwSC0.net] >>109 標準化ってのは独自性の有る新たなものを産み出すんやなくて 世に存在する既存のものの統一を図るのが本来やで
115 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 19:08:39.22 ID:TMG+JuRV.net] >>110 コンパイラごとにSTLの実装は違いますけど? VC++、gcc、clang、C++builderで実装が同じだと思ってました?w ~~~~~
116 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 19:33:15.69 ID:tnQQtKaj.net] 誰が実装が同じだといった? 規格の話しているのに、なんで実装の話が出てくるのか謎なんだが
117 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 19:46:20.54 ID:TMG+JuRV.net] >>116 おまえ頭おかしいのか? 己が書いたものを100回復唱してみろよ ↓ > 誰が実装が同じだといった? > 規格の話しているのに、なんで実装の話が出てくるのか謎なんだが
118 名前:デフォルトの名無しさん [2016/11/30(水) 19:54:56.69 ID:34Y1lEhk.net] 規格がまずあり、開発環境がそれをちゃんと守ってるかどうかは実装を見て確かめる。 規格の話だけするのなら、そもそもコンパイラや実行環境さえ必要なくて、日本の自称・憲法学者(笑)のように紙とペンだけで済む。 規格と実装、両方の話をするのが正しい。
119 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 20:16:34.70 ID:SxJugRcT.net] 規格の話しているのに、なんで実装の話が出てくるのか謎なんだが?
120 名前:デフォルトの名無しさん [2016/11/30(水) 20:22:51.93 ID:wWCievJu.net] 実装はコンパイラ毎に違うに決まってんだろ
121 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 20:43:04.57 ID:TMG+JuRV.net] >>110 を読んでみろ
122 名前:デフォルトの名無しさん [2016/11/30(水) 20:50:12.38 ID:o1dhiyLy.net] . . ■■人間性に批判殺到 あの悪質パクツイ垢 @copy__writing の管理人は東京都三鷹市の莉里子■■ i.imgur.com/5qAgsHG.png i.imgur.com/kldi84l.png i.imgur.com/8vCymiC.jpg ■今までのプライベート垢 @riricoco0 @bibliophilia333 @muzimuzi333 @nekomatagensou @hanasoraumimori @mirainosekai3 @zibanyan666 @parlorchild @liliririko @EriotN @mike_peko @riricoco0 @ririko_neko @nyanpas ※1 @telegraphyneko ・ ・ @riricatputi (新アカ) imgur.com/a/X1vQA 100垢以上作ってるキチガイ出会い厨 (粘着やめろ詐欺師!はやく捕まれホラ吹きネットストーカー犯罪者!!)
123 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 21:00:50.51 ID:SxJugRcT.net] 質問とか罵倒とか〜を読めとかじゃなくて自分の主張をすれば一発で終わることを
124 名前:デフォルトの名無しさん [2016/11/30(水) 21:13:12.45 ID:34Y1lEhk.net] 実装の定義がマチマチ。 ある人はプロプロセッサ処理前のソースコードという意味で。 ある人はプロプロセッサ処理後のソースコードという意味で。 ある人はコンパイル後のobjバイナリという意味で。 ある人はビルド後の実行バイナリという意味で。
125 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 21:39:54.28 ID:tnQQtKaj.net] ID:TMG+JuRV がなぜ発狂しているのか謎なんだが --- パクリでもなんでも、便利そうなものは標準に取り入れる意味があるんだよ さもなくば、コンパイラごとに違った(規格の)STL(モドキ)とか嫌だろ ---
126 名前:デフォルトの名無しさん [2016/11/30(水) 21:56:08.67 ID:pYpq7m+B.net] 一番頭おかしいやつが降臨しました>>124
127 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 22:24:40.10 ID:1zLD/kv4.net] パクリとかw 開発者本人が標準化委員会に提案したんだぞ
128 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:42:37.82 ID:lwghcYzA.net] ID:TMG+JuRV がなぜ発狂しているのか一瞬分からなかったが>>108-110 を読み直して理解した >>110 の説明の日本語がよろしくない
129 名前:デフォルトの名無しさん [2016/12/01(木) 00:10:57.08 ID:SwKXepyG.net] PCRE という正規表現ライブラリが存在する。 これをSTLのregexと同じインターフェースでラップした場合、STLと呼べるだろうか?
130 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:14:57.78 ID:rFASmZLg.net] regexはSTLなのか threadをSTLと言ってる人も見かけたし何でもありだな
131 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:18:17.94 ID:O3rxu16z.net] つまり STLという言葉を使う奴=バカ ハゲもその一人
132 名前:デフォルトの名無しさん [2016/12/01(木) 00:23:12.22 ID:SwKXepyG.net] >>130 指摘ありがとう。 regex はあくまでstdに採用されたのであってSTLではなかった。訂正します。
133 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:27:51.92 ID:9RDsFVMO.net] stdは「スタド」と発音すべき
134 名前:デフォルトの名無しさん [2016/12/01(木) 00:37:39.97 ID:SwKXepyG.net] studio をスタジオと呼ぶ日本語の舌なのに、あろうことか stdio をスタディオと呼んでしまう。
135 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 01:01:51.34 ID:lTTMQ5z2.net] >>113 ある程度のサイズのプログラムで大半を占めるアプリケーション層の操作が noexcept になる なんてことは考えにくいので、 noexcept がデフォだったらそれはそれで許せない感じになる。 noexcept がデフォでうれしいのなんてライブラリ作者ぐらいでしょ。
136 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 01:37:48.41 ID:TTb4zObN.net] >>130 regexもスタンダードなテンプレートライブラリだろ
137 名前:デフォルトの名無しさん [2016/12/01(木) 02:09:31.61 ID:SwKXepyG.net] たとえ話。 STLを会社とすると、basic_stringはSTLの特別顧客だがSTLの社員ではない。 STLを会社とすると、regex、thread、iostreamは一般客。 regexを会社とすると、basic_stringはregexの特別顧客だが、regexの社員ではない。 stringstreamを会社とすると、basic_stringはstringstreamの契約社員。 basic_stringだけが特別な存在として異彩を放っている。
138 名前:デフォルトの名無しさん [2016/12/01(木) 02:52:13.09 ID:PTAZcCnS.net] 下手な例え話はやめろとあれほど言ったじゃないか
139 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 03:20:50.25 ID:n8BYNyNm.net] >>128 確かに>>110 の内容は誤解する余地のある書き方だけど普通に読めば理解できるし、>>115 は良く読まずに脊髄反射してるか、分かってて揚げ足取りしてるのか、いずれにせよ建設的な議論ができないタイプなんだろう。
140 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 06:56:46.70 ID:SwKXepyG.net] >>138 いらだつ気持ちはわかるよ。 basic_stringはヴェルタースオリジナルと同じくらい特別な存在だからね。 https://www.youtube.com/watch?v=4Yi9_uCw2NY
141 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 08:11:31.70 ID:7obV0jvg.net] STLが会社ならstringはハケン 「ボク、正規になれるって頑張ってきたのに…」