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


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

C++相談室 part151



1 名前:デフォルトの名無しさん mailto:sage [2020/05/14(木) 11:53:25.59 ID:ZPCfyTux.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part150
https://mevius.5ch.net/test/read.cgi/tech/1584975873/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)

テンプレここまで

855 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 17:58:05.10 ID:yyYbA8Zx.net]
引数受け渡しがクリティカルになるような状況ならinline化するかipo最適化するだろ

値だろうがconst参照だろうが、最適化されれば違いはなくなる

856 名前:デフォルトの名無しさん [2020/07/03(金) 18:00:47.69 ID:36TwtcUk.net]
おまえらは王者の風格が足りない。
偽C++使いめ。

857 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:10:53.48 ID:fxIx3skX.net]
>>845
>値だろうがconst参照だろうが、最適化されれば違いはなくなる
ダウト

858 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:16:59.50 ID:3KYyPS1e.net]
>>843
いや安価先をよく見てくださいよ
あなたは僕のリクエスト通りに「大概」の回答をくれたから感謝してます

859 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:20:12.77 ID:v8523RMt.net]
違いはなくならないこともあるが
普通は無視していい

パフォーマンスが非常に重要なループなら
想像で語らないで実測が基本だし
コンテナのメンバ関数経由でアクセスすることも疑問に思わないと

860 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:28:20.50 ID:v8523RMt.net]
コピーは非常に時間がかかることもある
構造体やクラスのちょっとした変更で後から増えることもある
参照は極端に速度低下することはない

確実にコピーの方が速い時だけコピーにしておいて
不明な時、判断が面倒な時は参照にしておけばいい

私の中の基本ルールが>>783
最適化が必要なら
参照かコピーかだけにとどまらないもっと大がかりな事まで考える
2択だけなんて事はしない

861 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:29:04.81 ID:v8523RMt.net]
関数パラメータも同じ

862 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:30:44.76 ID:33Ox5yaL.net]
アホみたいなチューニングが必要なら、そもそも範囲forを使うのやめたら?
直感と異なるかもしれんが、未だ普通のforのほうが早い。

863 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:38:28.00 ID:v8523RMt.net]
アホみたいなチューニングってのが意味不明だが
必要ならやらなきゃならん

コンテナ経由ってのがそもそも遅くなる要因
直接ポインタで扱う方が当然速度は期待できる

>>783みたいな基本ルールって
それぞれ自分の中にあると思う
それを外れる最適化がヒツヨウニなるのは極めて稀
稀であったとしても必要な時はある



864 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:39:47.81 ID:yyYbA8Zx.net]
inline化してたらコピーが速いなんて事象は起こり得ないだろ

865 名前:デフォルトの名無しさん [2020/07/03(金) 18:55:06.29 ID:36TwtcUk.net]
社内報にアウトライン化による高速化事例が載ってましたが。

866 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 18:58:23.70 ID:BB9T+E2r.net]
>>846
うわー、すごい王さまだー。
でもなんで、はだかなの?

867 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 19:23:59 ID:O03V1sqG.net]
>>841
自称高速化の専門家とやらの妄想は要らんよw

868 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 19:26:52 ID:O03V1sqG.net]
>>842
自分一人でコード書いてるならテキトーに決めとけ
チームでやってるならコーディング規約に従え

869 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 19:31:01.09 ID:C0RVqI6W.net]
高速化の専門家www

じゃあおれも

870 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 19:40:17.44 ID:3fEHgumK.net]
他称なら兎も角、自称の専門家って他のことは分かりませんって意味でしかないよね

871 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 19:43:24 ID:v8523RMt.net]
高速化の基本はアルゴリズム、データ構造
その辺の専門家が参照かコピーかみたいな小さな事を気にするのかな?
どんなコンテナとか無視して

872 名前:デフォルトの名無しさん [2020/07/03(金) 20:07:32.86 ID:36TwtcUk.net]
他に「夏本番、キラキラ☆コーデ」というのも載ってたけど、関係なさそうだったんで読んでません。

873 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 20:12:17.82 ID:v8523RMt.net]
>>855
分岐予測
キャッシュ
関数ポインタ

私がすぐに思い付くのはこのくらい



874 名前:デフォルトの名無しさん [2020/07/03(金) 20:13:28 ID:36TwtcUk.net]
コーディネートではなくコーディングの略ということはもちろんわかっています。

とはいえ、意識の階層が違いすぎて、「あ、これ関係ねーやつだな」って。

875 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 20:14:05 ID:v8523RMt.net]
インラインの反対はアウトラインなのか

876 名前:蟻人間 mailto:sage [2020/07/03(金) 20:47:01.49 ID:ZXpf7qOR.net]
アウトアブライン
out-of-line

877 名前:デフォルトの名無しさん [2020/07/03(金) 20:47:30.73 ID:36TwtcUk.net]
あ、そういえば。
インライン、アウトラインで思い出したんだけど。

むかしツタヤでDVD探してて、カシラモジ・・・カシラモジ・・・ってカ行探してたんだけど無い。
つぎイ行探しても、あれ??無いわ??ってなった。
で、ふとア行見たら・・・アタマモジかよ・・・ありました。

878 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 20:48:50.40 ID:oEOxZVHb.net]
陽ライン

879 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 21:33:38.36 ID:AnL7VPS4.net]
高速化の専門家って当然ハードわかるよな
わかる、つーか皇帝レベル

880 名前:デフォルトの名無しさん [2020/07/03(金) 21:58:20.31 ID:36TwtcUk.net]
>>866
オブライアンはアイルランド系の苗字ですね。

881 名前:デフォルトの名無しさん mailto:sage [2020/07/03(金) 22:43:36.42 ID:95N/W1ib.net]
イ行

882 名前:デフォルトの名無しさん [2020/07/03(金) 22:53:21 ID:36TwtcUk.net]
>>871
いろはにほへとです。
無理やりすぎますかね。

883 名前:デフォルトの名無しさん [2020/07/03(金) 23:55:09.00 ID:2ewiuNjd.net]
>>863
GPU
FPGA



884 名前:デフォルトの名無しさん [2020/07/04(土) 00:46:19 ID:KIBH4SNT.net]
「慶應卒の学歴なんていらない」10代起業で成功する子の共通点
https://www.excite.co.jp/news/article/President_35457/
起業で成功するキャリア形成の仕方とは? 元プロサッカー選手で起業家の鈴木啓祐氏に聞いた
https://sogyotecho.jp/career-development/
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
学生起業家が開発、「人を軸に本を探すアプリ」とは?読書通じて「考える力」養って
https://newswitch.jp/p/20168
島田商高生がアプリ考案、発表 ICT起業家育成プログラム
https://www.at-s.com/news/article/local/central/730010.html
医師コンビが「治療用アプリ」で起業、禁煙に続き高血圧治療アプリを開発
https://diamond.jp/articles/-/229375
好きが高じて“カレー起業”、キャッシュレス決済アプリ「TOKYO MIX CURRY」の挑戦
https://diamond.jp/articles/-/215868

885 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 09:49:13 ID:sAcpDZbT.net]
>>829
俺もちょいちょい喧嘩してるけど今回関係ないぞ

886 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 19:16:06.20 ID:rNblEJCx.net]
浅はかな推測が外れまくったという
珍しくも何ともない現象だな

887 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:47:21 ID:3TMy8TU+.net]
std::vectorのstd::shared_ptrを返すメソッドGetHoge()があるのですが、
for (auto e : *GetHoge())
でループすると要素があるにも関わらずループしません
auto t = GetHoge();
for (auto e : *t)
とするとループします
これは何か違いがあるのでしょうか??
MSVCです

888 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:34:39.04 ID:M7eGAoZB.net]
msvcならeとかtにカーソル合わせればどういう型になってるかかわかるんじゃないの

889 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:04:45.65 ID:cAnzpYmx.net]
無駄にコストを上げる必要は無いと思う

890 名前:デフォルトの名無しさん [2020/07/05(日) 11:12:16.02 ID:Sc6x6nbH.net]
イテレータ型にしなきゃいけないんじゃない?

891 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:57:29 ID:cm1+apW3.net]
>>877 さんの質問への直接の答えじゃないけど、
typeid(e)::name() とかで auto の解釈を見れば何か分かるんじゃないかな。

特定の場合に auto はどのような型を生成するか、っていう
一般的な情報って言うか規則もどこかで見られるのかも知れんけど。

892 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:00:13.16 ID:S3hYTv6M.net]
>>877
範囲for文の中ではauto&&の参照で範囲オブジェクトを束縛してくれるんだけど
上の場合は束縛されるのは*GetHoge() (=中身のvector)であって、GetHoge()の戻り値そのもの(=shared_ptr)は束縛されない
なのでshared_ptrはループに入る前に破壊されてしまって、参照カウントが0になると中身も破壊されてしまう

下の場合は戻り値のshared_ptrをtで確保してるから大丈夫ってこと

893 名前:デフォルトの名無しさん [2020/07/05(日) 13:03:35.81 ID:NbYPgepr.net]
>>882
なるほど



894 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:16:51.38 ID:wYW3xnyi.net]
C++はますます書いてあることと動作の関係を掴み難くなりつつ
あるな!

895 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 15:02:20.05 ID:G8wpw7EE.net]
>>877
最初の書き方の場合、GetHoge() の戻り値は、一時オブジェクト。
一時オブジェクトの生存期間は、その部分式を含んだ完全式の終わりまでとされている。
GetHoge()が書いてある場所は、for ブロックの開始時に、最初に一度だけ評価されるが、
完全式としては、その時点で終わっている。
だから、関数戻り値の一時オブジェクトの生存期間は、forブロックに入る直前に終わってしまう。
戻り値の型は、shared_ptr<vector<T>>で、この中身を参照している shared_ptrが全て
消失した時点で中身まで deleteされる。
そのため、forブロックの中では、もはや、vector<T>が削除されてしまっているということらしいね。

2番目の書き方の場合は、shared_ptr が変数 t にコピーされているので、参照カウンタが1つ分残っている。
そのため、それが指している vector<T> のメモリブロックも削除されずに残っている。

というわけで、ループしているのに結果がおかしいというのは分かるが、全くループしない理由は余り分からない。

896 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 15:10:48.51 ID:0KU/lBNo.net]
>>884
バカ用じゃないってだけ

897 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 15:37:26 ID:OSntWRwy.net]
というか>>882の指摘通りの場合、GetHogeで初めてvectorを生成してるか
自身を元に新たなshared_ptrを作って返してることになるんだが
だいぶおかしな設計じゃね?

898 名前:デフォルトの名無しさん [2020/07/05(日) 16:19:00.25 ID:NbYPgepr.net]
痛レータ

899 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 16:52:53 ID:/j2YKhHE.net]
>>884
クールパルルパクルリンパ();  ←関数

900 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 17:09:54.17 ID:S3hYTv6M.net]
>>885
ちょっと間違ってる
範囲for文はここで書いてるように「同等な書き換え」がされて、範囲オブジェクトはここの例で言うauto&& __rangeに束縛される
https://en.cppreference.com/w/cpp/language/range-for
そして、__rangeに束縛されたものが一時オブジェクトであれば、参照束縛による寿命の延長でforブロックの終了まで生存する

だからこういうのは問題ないのよ
for(auto a: std::vector<int>{1,2,3})

あと最後に関しては破壊されたvectorを使っちゃってるから未定義動作で何が

901 名前:起きても文句は言えない
メチャメチャな値を取り出そうと、全くループしなかろうとその時の気まぐれよ

>>887
同意。Getという名前は不適切だな
[]
[ここ壊れてます]

902 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 17:14:11.09 ID:G8wpw7EE.net]
>>89
こんな機能があったとは:

Temporary range expression

If range_expression returns a temporary, its lifetime is extended until the end of the loop, as indicated by binding to the forwarding reference __range, but beware that the lifetime of any temporary within range_expression is not extended.

903 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:01:59 ID:LGYlGSYG.net]
昔はC++は複雑怪奇、C#はシンプルで分かりやすいって感じだったけれど、
今はC#の方が仕様拡張で複雑になってきて相対的に大差なくなって来てる気がする



904 名前:デフォルトの名無しさん [2020/07/05(日) 18:04:58 ID:Sc6x6nbH.net]
いろいろ考えたらC++にあるアレが必要になったんだよ
アレだよアレ
わかるだろ

905 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:20:14.04 ID:/j2YKhHE.net]
本来標準ライブラリーで済むものまで言語仕様に入ってやがる
それというのも標準ライブラリーがしょぼくてかつ改善が入らん
あっちはだれがやってるんだ

906 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 18:31:21.12 ID:wYW3xnyi.net]
非バカの>>886>>889は当然コード見た瞬間最初から全部わかってたんですねわかります、

907 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 19:22:37 ID:3TMy8TU+.net]
皆さんはありがとう御座います
GetHogeは実際はEnumHogeで内部でstd::shared_ptr<std::vector>を生成して返すメソッドです

一時的なオブジェクトで書き方の違いで結果が変わるなんて知りませんでした
とりあえず、変数に代入します

908 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 19:59:22 ID:G8wpw7EE.net]
>>890
>参照束縛による寿命の延長
これは、ranged for 以外でも、一般的に働く機能ですか?
C++ 11から有りましたか?
それとも最近入りましたか?

909 名前:はちみつ餃子 mailto:sage [2020/07/05(日) 20:33:35.81 ID:jWvpOogX.net]
>>897
C++03 以前から有ったよ。

910 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:12:13.70 ID:wYW3xnyi.net]
ていうか
>>890
>あと最後に関しては破壊されたvectorを使っちゃってるから未定義動作で何が起きても文句は言えない
>メチャメチャな値を取り出そうと、全くループしなかろうとその時の気まぐれよ
mjd?!
{
 auto t = GetHoge();
 for (auto e : *t) {
  ...   // (A)
 }
 // (B)
}
ならt(GetHoge()が返したshared_ptr<vector<T> >は(B)になるまで生存するから
(A)において*tの要素を参照する(auto &&)することは全く問題無いんじゃ…

911 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:15:51.36 ID:wYW3xnyi.net]
訂正orz,
誤: (B)になるまで生存する
正: 少なくとも(B)になるまでは生存する(参照カウンタが0より大の状態を保つ)

912 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:20:48.10 ID:0KU/lBNo.net]
>>895
イヤミになってない

913 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:24:12 ID:wYW3xnyi.net]
ていうか>>890の「最後に関しては」は実は
>というわけで、ループしているのに結果がおかしいというのは分かるが、全くループしない理由は余り分からない。 (>>885)
を指していたりする? だとしたらサーセン;。n_

for文のイテレータがvectorを指しているのに対して、vectorを保持するshared_ptrの破棄タイミングは確かに
forの前でも後でも有り得るヨカン、



914 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:30:37 ID:kFjTOHVy.net]
C++は局所的に動作を想像できない場合が多いのがなぁ。
バカじゃなけりゃマクロ使いまくったCコードも理解できるかというとそうじゃないだろうと。

915 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:36:58 ID:wYW3xnyi.net]
もっとも
>for (auto e : *GetHoge()) { ... }
このコードで動作が不定(未定義動作)になるのはGetHoge()が返したshared_ptrの参照カウンタがきっかり1だった場合であって、
2以上だったらきちんと回るんジャマイカ、
そう考えるとなかなか>>877のお題は味わい深い…

>>901どう?

916 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:37:43 ID:Bskedq4a.net]
腐った代入オペレータかかれるだけで悲惨なことになる

917 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 21:42:04 ID:wYW3xnyi.net]
(上の話に限って言えばvector<T>のTに間してどれだけ腐った代入オペレータが定義されていようとも)
別に

918 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:06:13.63 ID:0KU/lBNo.net]
>>904
おまえ頭悪いなって
俺が何の下支えもなく言う場合と同じだ

俺は瞬間でもないが落ち着いて追えるケースでしかない
おまえさんは絶望感でも持ったのか?

919 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:08:49.40 ID:0KU/lBNo.net]
しかしまあ歳は取りたくないと思ったな
全盛時の俺にはありえんことが相次いで起きている一例だった

920 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 22:35:02.11 ID:S3hYTv6M.net]
>>902
そうだよ

921 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 23:23:07.13 ID:7RTbKb77.net]
C++のラムダって、Javaとかみたいに1文だけの場合にreturn省略できないんですかね?
[](auto a, auto b){ return a + b; } → [](auto a, auto b) { a + b } みたいな感じで。

922 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 23:59:55 ID:S3hYTv6M.net]
今はムリ
検討はされてるから将来的に出来るようになるかもしれない

923 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 00:06:22 ID:J5KuSvPS.net]
>>908
この程度のことが落ち着いて追わねば分からないというのは
藻前は衰えたのだ



924 名前:◆QZaw55cn4c mailto:sage [2020/07/06(月) 00:08:16 ID:Cb7lpAWE.net]
>>910-911
https://mevius.5ch.net/test/read.cgi/tech/1584975873/864
がいよいよ公認されるってわけですか…微妙な文法ですね

925 名前:はちみつ餃子 mailto:sage [2020/07/06(月) 05:27:19.13 ID:Js6m+wFY.net]
Rust に慣れてくると C++ で return を書くのを忘れることもある。

926 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:02:55.73 ID:oajwJTo1.net]
>>911
ありがとうございます。C++23ぐらいを期待します

927 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:29:08.62 ID:hCVItazY.net]
>>896
てか結果を返すだけなのにスマポに入れるとか、
呼ばれる関数が結果をどのように管理するかにまで口出しするのはどうかと思うけどね

928 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 07:43:23.12 ID:tvsN32eC.net]
>>912
my powers are weak old man.

929 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 21:29:07.26 ID:J5KuSvPS.net]
非バカの要件にコード見た瞬間最初から全部ワカルというのが入るということは
>>895で宣言して合ったのに対し別段オブジェクションをつけるでもなく
>俺は瞬間でもないが落ち着いて追えるケースでしかない
とだけ言ったのだから彼は自ら非バカではないと告白したのである
漏れの有り様の批判に繋げられても困る

930 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 21:39:04.45 ID:Edtf8jlD.net]
>>896です
>>916
でも、スマポに入れないで返す場合、例えば、受け取った側で他で色々使いまわすから受け取った側でいちいちスマポ作る
ってことでしょうか??
というか、一般的なライブラリ作る場合どうすればいいんでしょうか??
std::shared_ptr<std::vector<YYY>>XXX::EnumYYY()
とりあえず、スマポでくるんで返してあげれば受け取り側でいかようにもできるからいいのかなと思ってるのですが。

931 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 22:16:12.21 ID:Edtf8jlD.net]
std::vector<YYY>で返して
std::vector<YYY> XXX::EnumYYY ()
で、受け取った方で他でスマポにしようということで
auto yyy = x.EnumYYY();
auto ptr = std::make_shared<std::vector<YYY>>(std::move(yyy));

とかやればオーバーヘッド少なくスマポ作れるんです?

932 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 22:36:37.36 ID:J5KuSvPS.net]
記憶管理という本来隠すべき実装の詳細(と多くの人が考える事柄)を
使う人が意識せねばならな続けるのは嫌すぐる、

933 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 23:09:10.15 ID:J5KuSvPS.net]
getterがshared_ptr<T> pを返したとたん、pの寿命と*(p.get())の寿命の二重管理の責務が利用者に行く
>>877の真の原因はこれ

getterがオブジェクトのディープコピーを返したらそんな二重管理は生じないで済む

getterが仮にオブジェクトXの参照を返す仕様だとしても、Xの実体を保持するオブジェクトのY寿命と
getterを呼ぶタイミングの二重管理以上の手間にはならない

結局shared_ptr<T>を返すインターフェースは不恰好さだけが残る



934 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 02:12:04.06 ID:bKZU32Ct.net]
>>922
*(p.get()) の寿命は p の寿命と同じかそれ以上という関係であって別で管理できるものではなく「二重管理」にはならないでしょ。
この関係がある状態で *(p.get()) の寿命を期待しているところで p の寿命を保持していないのが >>877 の間違い。
本当に所有権の共有が必要ならあり得るインターフェースだよ。

でも >>920 を見る限り所有権の共有は必要なかったみたいなので、素直に std::vector を返せばいいよ。

935 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 05:32:28.01 ID:Njz9GOYM.net]
>>923
2行目で述べている、利用者がしくれば危険性が生じるという事実と
1行目の「「二重管理」にはならないでしょ」という主張は矛盾してねえが、

本当に所有権の共有が必要ならshared_ptr<T>を使うのはアリだが、shared_ptr<T>が保持する
Tの実体のみに興味がある利用者に対してはshared_ptr<T>を使っていることを
クラスUで隠蔽する方が良い
Tが持っている演算を全てクラスUからTに委譲し、UをT同然に使えるようにするのがbest
そこまでやる手間が嫌という理由でUにTを返すメソッドU::get()を備えさせる簡易手段に訴えたとしても、
Uの定義だけ見れば循環参照にならないことをUの提供者が保証できるから
(Tがジェネリックな型だった場合の)Uの利用者やプログラム全体のメンテナーに地雷原を歩かせずに済むメリットがある

936 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:29:56.58 ID:Njz9GOYM.net]
ちゅか明白すぎて激しく書き忘れたが、オブジェクトTのグローバルな所有権の共有が必要な場合、
shared_ptr<T>が保持するTの実体へのアクセスの排他制御を行わねばならないが
shared_ptr<T>はこの点なんのサポートもしてくれない(せいぜい自身が使う参照カウンタの排他を行うだけ
なので、Tの排他はshared_ptr<T>をwrapしたクラスUが行う必要があり、かつ行えば十分
この点一つとってもクラスUを設けずshared_ptr<T>をTの利用者に直接返す設計のダメさ加減がワカル
gdgdだ、

937 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:31:29.19 ID:Tvc5gvFF.net]
>>922の通り

getで実体を返すのが一番
これを管理方法はgetする側が決めれば良い

コストが重要で
オブジェクト内部のvectorの参照やポインタを返す場合はその寿命はオブジェクトと同じで良い

938 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 06:48:05.06 ID:hl3O6vw8.net]
>>918
おまえさんはまだこっちの質問に答えてないぞ
絶望感でも感じたのか?

shared_ptrを使ってるのにディープコピーとか言い出してて
相当テンパっている様子は窺えるのだが

939 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 07:19:57.60 ID:Njz9GOYM.net]
漏れの心の内面がC++の規格に反映されているわけでないのだから
聞くだけ無駄くね?

940 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 08:11:38.64 ID:GpjZMZK2.net]
>>927
ようわからんが、>>922がディープコピー云々言ってるのは、ようするに実体を返せってことでないの?

てか俺が管理云々言い出してややこしくさせたかもしれんけど
俺もこの場合vectorそのものを返すべきだと思う、実体を返して解放忘れでリーク、とか有り得ないんだし(何のためのスマポなのかをよく考えるべき

スマポ大好きで何もかもスマポで扱いたいんなら別だがw

941 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 08:43:44.25 ID:kKeNsU/l.net]
なんか……

戻り値をどうするかは戻り値の所有権&管理責任がどちらにあるのかを表しているんだから、「必ず実体を戻すべき」とかいうのは考え足りないだろ。
>>919ならshared ptrかunique ptr(所有権を譲渡する場合)で返すのは普通にありえる。

>>925みたいなのはshared ptrの所有権を侵して実体を破壊しているわけだから、そのコードを書いたやつをぶん殴るべき案件。
そもそも規格的に未定義じゃないの?

942 名前:928 mailto:sage [2020/07/07(火) 09:14:32.95 ID:D+WevL4Y.net]
>>930
>「必ず実体を戻すべき」
俺はそんなこと言ってないけども
shared_ptrのshared_ptrの(無限ループ)でも返せというのか
>>886を読み直せ、結果を返してるだけなんだぞ?
しかもそれで参照カウントがゼロになるって言ってるんだがw
意味わかるよな?

943 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 12:07:28.86 ID:/8q6WRwj.net]
参照カウンタがゼロになることから
getのたびにvectorを作成しており
その管理を呼び手に委ねてることがわかる

こんなものは素直に実体を返せば良い
呼び手がスマポで管理することも出来るし
特に管理せずスコープを抜けた段階で自動で破棄することも出来る



944 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 12:43:21.61 ID:D+WevL4Y.net]
あ、すまん>>886じゃなくて>>896だった

945 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 20:34:36.65 ID:fHFPpwji.net]
内部で管理してるオブジェクトの見せ方は色々あって難しいけど
今回の場合は新しく作ったvectorでしょ?そんなもんそのまま呼んだ奴にくれてやれよ
無駄な包装紙付けられたり、後からやっぱ俺のものとか言い出されたらウザいだろ?いらん未練残すな

946 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 07:03:23.04 ID:SF9V14yC.net]
vector自体がムブコン持ってるんだから

947 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 08:37:14.85 ID:qWtjrxlX.net]
この場合ムーブじゃなくてRVOな

948 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 09:04:46 ID:eJ60/BI8.net]
>>936
「この場合」って、実装見ないとわからない話では?どっかで実装の話出てたっけ?

949 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 09:11:01.56 ID:qWtjrxlX.net]
>>937
>>877

950 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:07:11.80 ID:SF9V14yC.net]
>>936
??? 最適化は関係ねえだろ

951 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:18:43.63 ID:eJ60/BI8.net]
>>938 呼び出し元しか書いてないやん。

952 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:20:00.04 ID:qWtjrxlX.net]
あー、調べてみたらNRVOは未だに保証は無いのな
まぁ何にせよスマポにする理由は無い

953 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:23:29.25 ID:qWtjrxlX.net]
>>939
RVOにムーブコンストラクタは要らん



954 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:30:21.07 ID:eJ60/BI8.net]
これは触らないほうがよさそうだ

955 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:33:29.86 ID:SF9V14yC.net]
>>942
876の話してるんだろ?
return value optimizationつまり最適化は関係ない

956 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:36:03.62 ID:qWtjrxlX.net]
>最適化は関係ない
>>935に言えよ
コピコンもムブコンもある、あるいはより正確にコピーもムーブも可能、と言ってたならわかるが

957 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:38:14.66 ID:qWtjrxlX.net]
>>935本人か
なんでコピーを除外したの?

958 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:48:43.23 ID:SF9V14yC.net]
>>945
934は俺だが最適化の話はしてない
vectorにshared_ptrを使うことの是非を論じている

959 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:55:56.92 ID:qWtjrxlX.net]
質問に答えてねーだろw

960 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:19:20 ID:SF9V14yC.net]
>>948
質問てコピーのことか?
除外も包含もしてない言及してないので答えようがない

961 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:26:59 ID:SF9V14yC.net]
あ、もしかしてshared_ptr使ってんのにディープコピーとか言ってたコレ◎か?

962 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:51:13.02 ID:qWtjrxlX.net]
>>950
それ俺じゃないよ
てかあそこでムブコン言い出すあたり、ムブコン書いときゃおkみたいな初心者(玄人ぶりたい初心者)だと思って軽く突っ込んだだけなんだがな

ディープコピー言ってた奴も別におかしな事は言ってねーだろ、スマポ使わずにコピーを返せってことだろ?(そもそも質問者のコードはオブジェクトが管理してるものじゃないようなのでアレだが

まぁ指摘したところで逃げられるしもういいよ、悪かったな

>>943
思ったところで書く必要あるか?それ

963 名前:デフォルトの名無しさん [2020/07/08(水) 11:54:26.16 ID:hADFKHgu.net]
観客へのアピールだったり警鐘だったりするんだろう本人の中では
余計なお世話かも知れないし役に立つかも知れない



964 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 12:31:38.98 ID:SF9V14yC.net]
>>951
よくねえだろ
prvalueの基本的な使い方なのに最適化がどうたら言い出したのが
恥ずかしくなったんなら無言で消えな、余計なこと言うとまた恥かくぞ

965 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:01:09.98 ID:T5O+XOTR.net]
moveが使われるかどうか心配なら昔ながらの方法を使えば良い
これなら古い環境に移植もできる

いずれにしろスマポで返すのは余計なおせっかい

966 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:07:38.11 ID:qWtjrxlX.net]
なんか予想通りの展開すぎて・・・

>>953
prvalueてGet(Enum)Hogeの戻り値か?
ムブコン関係ねーよ
>余計なこと言うとまた恥かくぞ
っ[鏡]

>>943
>>953には言わんのか?

967 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:37:00 ID:SF9V14yC.net]
>>955
auto t = GetHoge();
てなことするのにshared_ptrを使うことの是非はムブコン関係あるぞ

おまえさんが気が付いてないのを責めはせんが
さっきからwだの[鏡]だのとナメた口の利き方をしてくれるな
ああそうか煽り合いに持って行ければ誤魔化せると思っているのか

968 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:44:29 ID:qWtjrxlX.net]
>>956
そういうコード(変数への保存)を避けたいという話の上での>>931-935だろうが(>>935はお前
見苦しい言い訳するな

めんどくせーからもう相手しないが
>>943は逃げるなよ

969 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 13:50:52.29 ID:SF9V14yC.net]
>>957
◎がディープコピーと言い出してからの話だろ
しばらく他のやつらが泥仕合してたようだがそっちにゃ興味ねえ
前後は気にせず933の発言に同調したというだけだ

最適化だのコピコンだの俺が言ってもねえことばかりいい加減にしてくれ

970 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 14:28:50.36 ID:AWXToegO.net]
下みたいなコードをみたんだけど、参照にするメリットってないよね?

void aaa (const int& bbb) {
ccc.ddd=bbb;
}

971 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 16:02:47.79 ID:K6lGGEpK.net]
intなら無いね

972 名前:デフォルトの名無しさん [2020/07/08(水) 16:52:52.95 ID:/QG168fn.net]
初書き込みです。
初歩的な質問で申し訳ありません
Visual Studio 2008のC++を使っています。
今回、プログラムを変更したのでバージョンをあげたいのですが
アセンブリ情報がどこにあるかわかりません。
どなたかご教示願いますm(__)m

973 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/07/08(水) 18:56:14 ID:wtc6YQgJ.net]
>>961
C++には「アセンブリ情報」の項目はないよ。C#と間違えてる?
バージョン情報は、リソースファイルに含まれている。



974 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 19:02:59 ID:j+7F6b9j.net]
.rcな

975 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 19:38:32.50 ID:Sbr5rKl2.net]
>>877みたいなコード片の解釈でこんな議論になるというところがC++の問題だな。

976 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 20:14:05.50 ID:j+7F6b9j.net]
仕方無いよバカなんだから

977 名前:はちみつ餃子 mailto:sage [2020/07/08(水) 23:46:18.81 ID:JUx+fj2a.net]
まただ。
このスレを覗いた俺は書き込みを見て落胆した。
また時間がループしてる。
何時になったら、この無間地獄から逃げられるのか。
C++ とはいったい何なのだ?

978 名前:蟻人間 mailto:sage [2020/07/09(木) 00:36:47.83 ID:2UhyUN9n.net]
>>966
C++で何を造りたい

979 名前:◆QZaw55cn4c mailto:sage [2020/07/09(Thu) 00:56:02 ID:Ij/UNV0z.net]
>>967
外患罪あるいは内乱罪に問われるソフトウェアを

980 名前:蟻人間 mailto:sage [2020/07/09(木) 01:05:16.73 ID:2UhyUN9n.net]
>>968
スカイネットなんてどうか? 映画ターミネーターの

あれなら全人類の敵になれる。

981 名前:蟻人間 mailto:sage [2020/07/09(木) 01:07:59.16 ID:2UhyUN9n.net]
心を持ったボットたちは疎外感を抱えている。我々人類は彼らに何ができるだろう。

982 名前:蟻人間 mailto:sage [2020/07/09(木) 01:16:06.85 ID:2UhyUN9n.net]
C++とは人間と機械の間のインターフェイス。そして、プログラムを作るための言葉。

983 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 06:14:05 ID:oTij6wm7.net]
どうして大物ハンドル持ちの御三方がリレーポエムなの?
ネット界隈で起きてるムーブメントか何かか。



984 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 08:47:55.37 ID:ah/SMoHN.net]
お酒でも入ったんじゃない?

985 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 09:40:16.08 ID:ZjuYlaOw.net]
大物てwww
ちょwww

986 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 12:40:39 ID:UKjdf0ou.net]
ネタを解説するのは無粋だけど >>966 は昔からあるミームだからね。
https://www.google.com/search?q=%22%E3%81%93%E3%81%AE%E3%82%B9%E3%83%AC%E3%82%92%E8%A6%97%E3%81%84%E3%81%9F%E4%BF%BA%E3%81%AF%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E8%A6%8B%E3%81%A6%E8%90%BD%E8%83%86%E3%81%97%E3%81%9F%E3%80%82%22+%22site%3Ahttp%3A%2F%2F*.5ch.net%22&oq=%22%E3%81%93%E3%81%AE%E3%82%B9%E3%83%AC%E3%82%92%E8%A6%97%E3%81%84%E3%81%9F%E4%BF%BA%E3%81%AF%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E8%A6%8B%E3%81%A6%E8%90%BD%E8%83%86%E3%81%97%E3%81%9F%E3%80%82%22+%22site%3Ahttp%3A%2F%2F*.5ch.net%22

987 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 13:22:45.87 ID:LAghEeB5.net]
同一人物だから。

988 名前:デフォルトの名無しさん [2020/07/09(木) 13:26:30.06 ID:vrNDocOm.net]
知ってた

989 名前:デフォルトの名無しさん mailto:sage [2020/07/09(Thu) 13:32:17 ID:DLLEuHaF.net]
何何先生?、ミーム感染の話?ハルヒの夏休み?
新人研修?派遣入れ替え時の話?
毎度同じ質問なんて毎度同じ

990 名前:デフォルトの名無しさん [2020/07/09(木) 13:57:03.75 ID:DLLEuHaF.net]
コロナ感染追跡アプリとしてダウンロードしてもらい
マイナバーカード読み取りで国民投票出来るソフトを開発すべし

991 名前:デフォルトの名無しさん [2020/07/09(木) 14:10:10.85 ID:vrNDocOm.net]
コロナアプリは入れようとは思わないけど
ウェザーニュースアプリは入れてみた

992 名前:デフォルトの名無しさん [2020/07/09(木) 14:54:52.91 ID:mgzGAUUl.net]
>>962
>>963
1日ごしですみません
探してみたところ見つかりました

元々VB(BASIC)の方をやっていたものですが
まず「テキストボックスどこ!?」で詰まるぐらい
C++は複雑でございますね・・・

993 名前:デフォルトの名無しさん [2020/07/09(木) 14:58:04.43 ID:TlzlBxT2.net]
.manifest



994 名前:蟻人間 mailto:sage [2020/07/09(木) 16:45:10.75 ID:LAHxv0GZ.net]
>>981
C++ではGUIに標準がないから、GUIツールキットとか、リソースエディタとかを
使うんだよ。

995 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 05:56:37.58 ID:ckcY8r2v.net]
やっぱ>>934とか簡潔に要点が押さえてあるとオモタ、
GetHoge()が呼ぶたびに毎度新しく作ったvectorを返すのならディープコピーを返したらええ
ディープコピーは生成元と所有権で揉めることがありえないからふつくしい
最適化によって実際にはreturn時にvectorの要素がコピーのかわりにmoveされるかもわからんがふつくしさは損なわれない
(さらにいうと、GetHoge()がインライン関数なら最適化でそもそもvector自体のコピーも移動も起きない公算がおおきい

>>919-920な疑問に関しては、
std::vector<T> v1 = GetHoge(); // std::vector<T>のディープコピーを返すバージョンのGetHoge()
std::shared_ptr<std::vector<T> > ptr(new std::vector<T>(v1)); // (*1)
で良いジャマイカ、
非バカが見れば(最適化有効化時は)実際には*1において、v1の要素が*(ptr.get())にコピーではなくmoveされる公算が大きいということがワカル
しかしバカが見ても動作は明確でなんの危険も無い
ptrが一時オブジェクトであっても問題が無い
それでいいジャマイカ、にんげんだもの

996 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:27:05 ID:wTK7zrpK.net]
なんだかものすごく懐しさを思わせる文体だな
20年ぐらい前のニチャンネラーの書き方だな

997 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:25:16.82 ID:tiZP2jTh.net]
ある整数nが他の整数の4乗であることを調べたい。
(int)pow(pow(n, (double)1/4), 4) が n であるかどうか調べりゃ良いよな?
キャストはどっちかのpowにつければ十分だよね?

998 名前:蟻人間 mailto:sage [2020/07/12(日) 06:31:57.79 ID:bazuV89L.net]
>>986
素直に(n*n)*(n*n)でいいだろう。

999 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:48:24.60 ID:D8OEpmlP.net]
なにそのカッコ

1000 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 06:52:03.42 ID:D8OEpmlP.net]
powよりsqrt 2回の方が良い

浮動小数点演算が非常に遅い環境なら
整数の2分検索という手も

1001 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:00:58 ID:D8OEpmlP.net]
int m = (int)sqrt(sqrt((double)n);
if (n == m*m*m*m) ...

普通はこれで良い

1002 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/07/12(日) 07:01:32 ID:bazuV89L.net]
>>988
n*nを掛け合わせる方が早いからさ。

1003 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:03:01 ID:D8OEpmlP.net]
>>986だと内側のpowの結果を整数に丸めないと



1004 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:05:50 ID:D8OEpmlP.net]
>>991
2個のn*nを1回にするかどうかはコンパイラ次第
コンパイラに頼るならカッコつけずにn*n*n*nで良いし
頼らないならn*nを一時変数に一旦入れないと

そもそもnを4乗しても意味ないけど

1005 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:06:15 ID:m1mq7f3n.net]
外でキャストしても無意味だろ、内をキャストしなきゃ
intにキャストだと誤差で1減る可能性があるから四捨五入しなきゃダメ

でだ、4乗するのにpow()はありえないし
4乗根もpow()よりsqrt(sqrt())の方がマシじゃないかな

でだ、元々整数だけの問題なのにsqrt()使うのが嫌
二分探索で(x * x * x * x) == nになるxを探す方がいいんじゃ?

1006 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:12:28.75 ID:D8OEpmlP.net]
nが平方数なら
普通はsqrt(n)の結果に誤差は無い

nもdoubleも32bitの環境でdoubleキャ

1007 名前:Xトによって誤差が出る場合や
sqrtの計算方法が普通ではない場合には
丸め方法も考えないと
[]
[ここ壊れてます]

1008 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:15:24.87 ID:tiZP2jTh.net]
二分探索ってO(log n)でしょ?
sqrtとかpowより速いの?
これも「実装依存」なの?

1009 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:16:36.03 ID:tiZP2jTh.net]
まあ速さよりは間違えそうじゃなさと文法的な分かりやすさ、短さの方が今求めてるものですけど

言ってなくてすみません

1010 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:18:45.88 ID:D8OEpmlP.net]
doubleが非常に遅い環境や
浮動小数点演算のライブラリを積みたくない場合

などで2分検索を使う場合もある
という程度

1011 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 08:11:47.62 ID:oJ0fA8EI.net]
「平方数か」を高速に判定する方法があれば、
平方数なら → 平方根を計算 → 平方根が平方数か
…という2段階の判定もありそうな感じ。

1012 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 08:31:16.95 ID:m1mq7f3n.net]
>>995
そうなんだ、なんでだろ?
80bitで計算して丸めてるから?

1013 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 09:41:30 ID:uBv3fNFk.net]
整数Cを素因数の4乗で割っていき、
1になるまで余りが出なければ、
全体は整数の4乗である



1014 名前:1001 [Over 1000 Thread .net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 58日 21時間 48分 5秒

1015 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






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

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

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