- 1 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:25:51 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.63【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1231499251/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm ◆ソースのインデントについて 半角やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
- 976 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:42:25 ]
- scoped_ptrだと、呼び出し元がポインタを得た後、「あるクラス」のインスタンスが変更受けた場合に、
呼出し元が破棄されたポインタを持たされる危険がある。 というか内部実装にscoped_ptrを用いる場合はTestをコピーして返すべき。 そもそもスマポは、Testインスタンスを参照する手段であって、 MemberFunctionもTestを渡すのにスマポを用いてるだけで、Testの参照の参照を返すのは本来的に無意味。
- 977 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 20:46:08 ]
- スマポってセマンティクスはポインタだからな
Test*& MemberFunction(); と同じ事をしようとしてる
- 978 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 20:57:10 ]
- >>975
コピーをお前はTest自体のコピーと考えているように見えて、 974はshared_ptrのコピーのことを指しているように見えるぞ。
- 979 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 21:17:13 ]
- &じゃなくてconst&ならありなんじゃね?
値をコピーすると参照カウンタの操作が入って遅いだろうし。
- 980 名前:975 [2009/04/09(木) 22:10:14 ]
- でもスマポ(特にboost::shared_ptr<>)の参照を返すコードって結構ないですか?
スマポのコピーって本当に遅いし。測ったら普通のポインタのコピーより 30倍近く時間がかかってました。 でも本当は無意味で、979さんの言うとおりconst&の時だけ意味があるのかな?
- 981 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:02:14 ]
- 速度を本当に気にするような場面ならそもそもスマポを使うな。
しかし、ほとんどの場合においてスマポのコピー程度の時間は全く問題にならない。 30倍と言うが、ポインタのコピーなんて機械語で一命令になるかならないかのレベルなんだから、 それが30倍になろうとも余程の大量コピーでない限り全く気にならない。
- 982 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:06:31 ]
- shared_ptrの参照を返すことなんてまず無いな。むしろコピーしてなんぼだ。
そもそもオブジェクトが何かの参照を返す事自体問題がある。
- 983 名前:975 [2009/04/10(金) 01:02:41 ]
- そうなんですか。。。
実は自分が今やってるプロジェクトでは、boost::shared_ptr<>&返し (スマポの参照返し)を使いまくってて、自分もそれに合わせて書いてるんですが、 最初にスマポの参照返しを使い始めた人はもうプロジェクトにはいないし、 なんでかなとおもってたのですが。、。
- 984 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 01:24:38 ]
- スマポの参照返すくらいなら普通に参照返せばいいんじゃ?
- 985 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 01:37:00 ]
- ぬるりーは怖いぜよ
- 986 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 02:03:51 ]
- 返ってきたスマポの参照が本当に有効なスマポを指してるのか
知らない間に外からいじくられないか いつまで生きてることが保証されてるのか そもそもスマポってこんなこといちいち気にしたくないから使うもんのはずだ 危ないことしたくないからわざわざ重いスマポ使ってるのにそんなことするなんて ストーブ炊いて暑いからってクーラーかけるようなもの 馬鹿げてる
- 987 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 02:26:16 ]
- ぬるぽは怖いぜよ
- 988 名前:975 [2009/04/10(金) 06:56:20 ]
- じゃあやっぱり最初にスマポの参照返し使いまくりをはじめた人に聞いてみたほうがいいのかな。。。
ソースを見る限り、間違いなくC++の達人だと思ったので、そのやり方にしたがってれば間違いない と思ったんだよな。 ちょっと聞いてみます。
- 989 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 07:25:22 ]
- 30倍遅いっても怪しい感じだな
そんなに遅くなるか? 誰か試してくれ
- 990 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 07:28:34 ]
-
- 991 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 08:19:19 ]
- shared_ptrなら、コピー時の参照数の管理コストを無視できない、かも。
|

|