- 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); } };
- 190 名前:デフォルトの名無しさん [2016/12/02(金) 12:06:38.84 ID:kfHVwGjq.net]
- vector::data()が追加されたのはC++11 からだから古い入門書には載ってない。
だから安易にdata()を使えと回答する人もまた入門者に近しい。
- 191 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:12:12.15 ID:jbEu1BDa.net]
- どうも論理が飛躍しているな
- 192 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:28:12.29 ID:7EcjjmS3.net]
- 質問者はラムダ使ってるんだからdata()使えるでしょ
- 193 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:29:35.07 ID:dQ26sSxp.net]
- >>190
古い入門書を想定しろ、はさすがに言いがかりがひどすぎる。
- 194 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:36:41.22 ID:oWLJBZXg.net]
- AnsiString::data()のパクリか…
- 195 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:38:30.29 ID:oWLJBZXg.net]
- いや、string::data()か
- 196 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:14:03.78 ID:uzv70fAD.net]
- data()はいいけど、vectorにemplace_back()したらsize()も変化するんだが
それが渡したクラスでは反映されないってのが問題だと思ってたんだが勘違い?
- 197 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:59:13.58 ID:7EcjjmS3.net]
- 俺もそう思ってた
もっといえば要素増やすとdata()の場所がかわってアクセス違反になるかもしれなくて困ると言うことかと
- 198 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 15:03:09.14 ID:uzv70fAD.net]
- >>197
あーそれはあるね どんどん要素を増やして行くと再newしてそこに全部要素コピーされなおして 元のアドレスは無効になるってのがあったな だからvectorをメンバに持つのを頑なに拒否する理由がわからない
- 199 名前:デフォルトの名無しさん [2016/12/02(金) 15:13:55.45 ID:kfHVwGjq.net]
- なんだか急にスレのレベルが落ちたのはなぜ?
他の場所で使うためのvectorをメンバ変数にするとか勝手なこと言いだしているし、精神病っぽいんだが。
|

|