[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/02 12:18 / Filesize : 258 KB / Number-of Response : 992
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.64【環境依存OK】



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でのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。


969 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 11:26:47 ]
PHPからCをCからPHPを呼び出す、もとい実行する方法ってある?

970 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 11:40:46 ]
>>969
systemやexec系の関数で出来るだろ

971 名前:デフォルトの名無しさん [2009/04/09(木) 12:01:34 ]
そろそろ1000か。ところで、このスレの過去ログを全部保存しているサイトとかってないのかな?
時々ググって引っかかったけどdat落ちしてたりとか、過去のこの辺で出てたよな、とかそういうの
あるんだけど。


972 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:03:17 ]
過去ログ見ろとか言われても困るよなw

973 名前:デフォルトの名無しさん [2009/04/09(木) 12:57:43 ]
boost::shared_ptr<Test> MemberFunction();
boost::shared_ptr<Test>& MemberFunction();
あるクラスが、内部にTestのスマポを持っていて、それを返す関数があるとします。
(名前はMemberFunction)。
このとき、参照で返すのと、実体で返すのとは、どう違うでしょうか?
自分は、スマポを返す場合は参照以外はないと思ってたんですが、実体を
返すことに意味はあるでしょうか?


974 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:14:58 ]
参照を返したら外部からインスタンス内部のポインタをresetできる。
コピーインスタンスを返したら、外部のスマポは外部のポインタだけ変更できる。

975 名前:デフォルトの名無しさん [2009/04/09(木) 13:20:34 ]
>>974
外部から触って欲しくない時にはコピーインスタンスを返すべきということですか?
でも、そうなると内部で保持しているスマポはboost::scoped_ptr<>を使うべきでは
ないですか?

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なら、コピー時の参照数の管理コストを無視できない、かも。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef