- 1 名前:デフォルトの名無しさん [2008/02/28(木) 00:01:39 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.49【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1203478421/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 702 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:19:40 ]
- >>698
int *a, b; int* a, b;
- 703 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:33:51 ]
- >>699,701-702
ありがとうございます intだとint型とint型へのポインタが同時に宣言でき、 int*だとint型へのポインタのみ宣言できるわけですか >戦争の火種 (((( ;゚Д゚))))ガクガクブルブル
- 704 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:39:19 ]
- >>703
いいえ、どちらも同じです
- 705 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:40:40 ]
- >703
戦争の火種って言っても空襲は来ないから安心しておじいちゃん。
- 706 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:47:02 ]
- >>703
残念ながらそれは違う
- 707 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:59:24 ]
- int *a, b;
int* a, b; 二つとも aがint型へのポインタ。int型の変数bでしょうか?
- 708 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:02:17 ]
- Yes.
int* a, b; と書こうが、b はポインタにはならない。
- 709 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:02:58 ]
- >>707
その通り
- 710 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:05:39 ]
- int * a; のように書く人もいるね。
- 711 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:07:17 ]
- >>700
単に並べればいいよ。 gcc `wx-config --cppflags` `pkg-config --cflags gtk+-2.0` mycode.cc
- 712 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:08:06 ]
- int*a; 派
- 713 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:09:31 ]
- おまえがどう書こうが関係ねえ
- 714 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:10:33 ]
- int
* a ; 派
- 715 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:11:23 ]
- >>714
ステップ数至上主義者ですね
- 716 名前:700 mailto:sage [2008/03/11(火) 00:17:01 ]
- >>711 さん
ありがとうございます!
- 717 名前:デフォルトの名無しさん [2008/03/11(火) 00:34:27 ]
- i\
n\ t * a ; 派
- 718 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:37:59 ]
- boost::mpl::identity<int*>::type a;派
- 719 名前:デフォルトの名無しさん [2008/03/11(火) 01:21:53 ]
- string の読み込みがないのが不便ですね
改行やバリナリはありますが 自作するしかないですか
- 720 名前:デフォルトの名無しさん [2008/03/11(火) 01:24:21 ]
- C言語やWindowsAPIはファイルの入出力が低レベルのしか無いです
たとえば空きメモリを調べてバッファを使って出力するとか そういうのを強化するライブラリ無いですか ビット単位の出力もないです
- 721 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 01:25:23 ]
- boostでおk
- 722 名前:デフォルトの名無しさん [2008/03/11(火) 01:27:40 ]
- 詳しく教えてください ライブラリ名とか
- 723 名前:デフォルトの名無しさん [2008/03/11(火) 01:32:21 ]
- 例えば、Fstream というバッファ付きファイル出力クラスを自作したとします
書き込みがあまりなくなったらメモリを解放したいのですが、 一番最後の書き込み時に解放しなかった場合、 それ以降アクセスがなかったら無いことを知ってメモリ解放するにはどうしたらいいですか
- 724 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 01:33:05 ]
- デストラクタで開放するようにして、スマートポインタに入れるなりなんなり
- 725 名前:デフォルトの名無しさん [2008/03/11(火) 01:34:41 ]
- クラス生成時にサブスレッドを動かして
時間計測してシグナル出せば良さそうですね
- 726 名前:デフォルトの名無しさん [2008/03/11(火) 01:37:56 ]
- >>724
複数のファイルを同時に扱いたいです 1000個の書き込みがあれば 一つあたり100KB確保でも大きいです 単独でバッファ管理するより複数を調べた方が良さそうですが
- 727 名前:デフォルトの名無しさん [2008/03/11(火) 01:43:50 ]
- 例えば
Fstream fp("out1"), fq("out2"); としたとします クラスはfpの状態とfqの状態両方を知ることは出来ますか
- 728 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 01:51:55 ]
- static変数ででも管理すればいいだろ
- 729 名前:デフォルトの名無しさん [2008/03/11(火) 01:57:24 ]
- fp[100]としたとき、メモリを解放した方が良い番号がわかったとき自動的に
解放させるにはどうしたらいいですか? 最近参照された時間を保持していてもメンバ関数からでは 他のメンバ変数はわからないですよね
- 730 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 01:58:38 ]
- >>729
728読んだ?
- 731 名前:デフォルトの名無しさん [2008/03/11(火) 01:59:49 ]
- staticは共用されないですか?
個別の時間を保持しないと駄目ですが
- 732 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:01:30 ]
- 全インスタンスの個別の時間を保持するlistかmapかなんかをstatic変数にすればいいだろう
- 733 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:02:00 ]
- だいたい貴様の知識が乏しいのは自分でもわかってるんだろ。
その貧相な知識で勝手に判断して人のレスを無視するんじゃねえよ
- 734 名前:デフォルトの名無しさん [2008/03/11(火) 02:03:54 ]
- 時間管理もバッファも、vector型にして共用すれば良いですか?
- 735 名前:デフォルトの名無しさん [2008/03/11(火) 02:09:53 ]
- あとメモリ解放のためにサブスレッドを動かしたいのですが
コンストラクタに入れるとクラス生成ごとに呼びだれると思うのですが これも共用するにはどうすればいいですか? static fnc(){}などと書けば初めの一回だけになりますか
- 736 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:10:01 ]
- 質問する前に手を動かしてみたら?
- 737 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:15:17 ]
- 闇雲に手を動かすだけで、「〜をやってみましたがうまくいきませんでした。なぜですか。」とか聞いてきそうだ。
>static fnc(){}などと書けば初めの一回だけになりますか staticというキーワードを知っているのなら、それについての最低限の仕様くらいは 自分で調べたほうがいいよ。webを見るなり、まともな入門書を読むなりして。 凝ったことをやろうとする前に、もっと先に学ぶべきことが多そうだ。
- 738 名前:デフォルトの名無しさん [2008/03/11(火) 02:28:02 ]
- うごかないですが原因がわかりません
どうすればいいですか class cls{ public: static int n; cls(){ n=0; } }; main(){ cls x; }
- 739 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:32:52 ]
- どううごかないんだ
コンパイルエラーなのか 画面に何も表示されないのか 後者なら別におかしくないぞ
- 740 名前:デフォルトの名無しさん [2008/03/11(火) 02:37:50 ]
- Error: 未解決の外部参照 'cls::n' がTEST.OBJ から参照されました
とでます
- 741 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:39:42 ]
- static変数の定義がないから
static int cls::n;
- 742 名前:デフォルトの名無しさん [2008/03/11(火) 02:42:55 ]
- それは知りませんでした サンクス
あとクラスのメンバ関数も共用出来ますか? 初めに一度コンストラクタで起動するだけにしたいです
- 743 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:44:44 ]
- >>742
staticをメンバ 関数につけたらどうなるか調べなおせ
- 744 名前:デフォルトの名無しさん [2008/03/11(火) 02:56:22 ]
- 他人のコードを読んでいて、
namespace std { template <> void swap(hoge &a) みたいな記述があったのですが、templateのあとの<>の中が空白でも コンパイル出来ているのですが、なんででしょうか?
- 745 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:57:24 ]
- パラメータ0個のテンプレート
- 746 名前:デフォルトの名無しさん [2008/03/11(火) 03:01:30 ]
- >>745
ありがとうございます。でも意味がないような、、、 どんな時につかうのですか?
- 747 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:06:02 ]
- 特殊化でぐぐれ
- 748 名前:デフォルトの名無しさん [2008/03/11(火) 03:11:47 ]
- read(fp, x)
write(fq,x) としたとき、読み込むファイルが1G以上だとメモリがたらなくなります あらかじめ書き込むサイズが判明していたとしてマルチスレッド化して read(fp, x) write(fq, x, N, KAIHOUFLG) としてメモリを解放しながら読み書きするにはどのように実装すればいいですか
- 749 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:15:09 ]
- マルチスレッドに何の関係があるんだよ。
分割して読み書きすればいいだけだろうが
- 750 名前:デフォルトの名無しさん [2008/03/11(火) 03:17:02 ]
- read(fp, x)はファイルを読み込みますが、例えば1G読み切るまで停止しないって事です
- 751 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:19:17 ]
- それはそのreadの設計が悪いだけだろうが。
- 752 名前:デフォルトの名無しさん [2008/03/11(火) 03:20:49 ]
- >>747
ありがとうです。特殊化でぐぐったら、wikipediaのエントリが先頭に出てきて、それを 読んだらわかりました。(わかりやすく書いてあった) templateのうち、コンパイラまかせじゃなくて自分で書いてしまいたいところを自分で 書くということですね。
- 753 名前:デフォルトの名無しさん [2008/03/11(火) 03:21:11 ]
- 1Gのファイルを読み込んだとして、
メモリを解放しながら書き込むという指定をすると 読み込まれた部分に対して先頭からメモリを解放しながら書き込みます
- 754 名前:デフォルトの名無しさん [2008/03/11(火) 03:23:27 ]
- 通常使用では一括して読み込むことも出来るし、
メモリを解放させながら読み込むことも出来るという汎用の関数を作りたいんです
- 755 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:25:35 ]
- なら作ってください
- 756 名前:デフォルトの名無しさん [2008/03/11(火) 03:26:09 ]
- やり方を教えてください
- 757 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:30:19 ]
- 上で散々でてるがな。
- 758 名前:デフォルトの名無しさん [2008/03/11(火) 03:30:20 ]
- 商品先物や、為替取引と同じようなものです
現物を扱わずに売り買いだけを先にしてしまうようなものです 読み込みと書き込みの約束だけをしてしまい不要ならメモリを解放します
- 759 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 04:31:06 ]
- 口約束で終わるって事か?
- 760 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 06:03:12 ]
- スレが伸びてると思ったら、梯子もなしに屋上に上ろうとする馬鹿が沸いてたか。
- 761 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 07:20:30 ]
- VirtualAllocでCOMMITを調整する話か?
まー、32bitアプリは仮想メモリ空間も 2Gあたりでリミットだからあんまし意味がないけど
- 762 名前:デフォルトの名無しさん [2008/03/11(火) 07:20:53 ]
- >>756
- 763 名前:デフォルトの名無しさん [2008/03/11(火) 07:23:38 ]
- >>756
Windowsなら4つのAPIで実現できる。 APIの頭文字はそれぞれ、C、M、U、Cだ。
- 764 名前:デフォルトの名無しさん [2008/03/11(火) 09:38:41 ]
- 書き込み予約と、読み取り予約と、バッファ管理して
それらを同時に動かして快適動作させたいわけです コードを教えてもらえませんか? 読み書きのバッファを128KB単位にして管理すれば良さそうなんですが・・ x[n]のようにデータにアクセスできるが、前方が解放されていたとしてもそれ以外は同じアクセスが出来るようにしたいです
- 765 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:46:11 ]
- >>764
ディスクを交換するほうが早い。
- 766 名前:デフォルトの名無しさん [2008/03/11(火) 10:36:58 ]
- >>764
脳ミソを交換ry
- 767 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:00:57 ]
- >>764
したい事は >>748 なのか? もしそうなら、標準関数は何もしなくてもそうなってる 一体何のために何がしたい?
- 768 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:46:23 ]
- 読み込みや書き込みをできる限りメモリにキャッシュしたい、というこ
となら、組み込み環境でない限り、OSがそれぐらいはやっている。
- 769 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:57:28 ]
- そんなこと無いよ
それだったらFFCやfast copyがOS標準のコピーを上回らないはずだよ 一つの巨大ファイルだけを扱うならば、速度差は出ないだろうけど 複数のファイル(1000以上同時など)を扱うと標準のはやつにたたない あと2Kずつ書き込みがあったとしたらそのつどAPIでそのまま書き込んでいたらとても鈍いよ
- 770 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:02:16 ]
- ファイルをメモリにロードする事、複数の少数ずつのファイル出力の最適化する事
上のファイルロードをスレッド化して読み込み中に不要なメモリを解放出来るようにすること
- 771 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:07:58 ]
- まずC言語とWindows APIのファイル入出力は難しいんだよ
Read( "inputfile", buf ); Write( "outputfile" , buf ); だけで扱えるようにしたい しかしここで、バッファ管理やマルチスレッド化を導入しなければ 巨大ファイルを読み込むときにメモリ不足が足らなくなったり、少数ファイルの書き込みで速度低下する これらを解消して簡単なファイル入出力をしたい
- 772 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:10:02 ]
- ファイルマッピングをmemcpyしたまえ
64ビットならアドレス空間も余裕だ
- 773 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:20:24 ]
- >>769
FFCとかはFILE_FLAG_NO_BUFFERINGをつかって システムキャッシュにのせないことで高速化してるんじゃなかったっけ?
- 774 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:28:10 ]
- >>770
目指している方向はわからなくもないが、 ここで色々訊いているような人間が使い物になるものを作れるかどうか不安。 何事も、下手な自作よりOS標準など既存のものほうがずっとうまいと仮定すべき。
- 775 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:33:19 ]
- 読むだけじゃ意味無い(処理するために読む)んだから、
巨大データをオンメモリでっていうこと自体に元々限界があるの。 分けなさい。
- 776 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:49:21 ]
- すみません 出力値が異なるのですが原因がわかりません なぜでしょうか?
#include <iostream> #include <string> using namespace std; #define N 10000000 int main(){ unsigned int n,m,cn[256]; string x(N,'\0'); for(n=0;n<N;n++)x[n]=rand()&255; for(n=0;n<256;n++){cn[n]=0;for(m=0;m<8;m++)cn[n]+=(n>>m)&1;} unsigned int sum=0; for(n=0;n<N;n++)sum+=cn[x[n]]; cout<<sum<<endl; #define b(x,i) ((x>>i)&1) sum=0; for(n=0;n<N;n++){ int y=x[n]; sum+=b(y,0)+b(y,1)+b(y,2)+b(y,3)+b(y,4)+b(y,5)+b(y,6)+b(y,7); } cout<<sum<<endl; }
- 777 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:52:58 ]
- 自己解決しました
string x(N,'\0'); → vector<unsigned char> x(N,0); で一致しました
- 778 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:48:42 ]
- ちょっとお尋ねしたいのですが
コンパイル時 ../source/memo.h:15: note: candidates are: MyFrame::MyFrame() ../source/memo.h:15: note: MyFrame::MyFrame(const MyFrame&) のようなエラーが出たのですが、このエラーはどういう意味のエラーなのでしょうか??
- 779 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:52:43 ]
- それ単独では出ないと思うけど・・・
その直前のエラーについての補足説明で、 候補としてこういう関数がありますよってことじゃないかなたぶん?
- 780 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:31:11 ]
- 山ほどあるコンパイラのエラー出力フォーマットなんていちいち覚えてられないよ。
コンパイラ・ソース・エラー(省略せずに)を明記してくれ。
- 781 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:04:38 ]
- >>778
noteって単語と、candidateって単語の意味くらい調べましょうね。 そうすればそれらの行がエラーじゃないことと、何を言わんとしているか位判るだろうから。
- 782 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:06:36 ]
- >>769
>複数のファイル(1000以上同時など)を扱うと標準のはやつにたたない  ̄ ̄ >巨大ファイルを読み込むときにメモリ不足が足らなくなったり、少数ファイルの書き込みで速度低下する  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 落ち着いて、日本語で書いてください。
- 783 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:07:04 ]
- int a[6]={0,1,2,3,4,5,6}
とすると、配列の中身を一気に定められますが、 int a[6] と一度定義した配列に一気に中身を代入することは可能でしょうか
- 784 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:15:55 ]
- >>783
int oneShotArray[] = {0, 1, 2, 3, 4, 5, 6}; int a[6]; std::copy(oneShotArray, oneShotArray + 6, a); memcpy(a, oneShotArray, sizeof(* a) * 6);
- 785 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:43:13 ]
- 誘導されてこちらに来ました。
ifstreamで半角空白を含むファイル名や、日本語を含むパスで ifstream ifile(フルパス名);で失敗してしまうのですが、これは仕様なのでしょうか? 仕様なのでしたら回避策はあるのでしょうか? Visual Studio 2005SP1を使用しています。 よろしくおねがいします。
- 786 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:43:47 ]
- コンパイルはVisualStudio2005 Command Promptで行いました。
フルパス名をコピペして、\を一つ減らしてエクスプローラーに貼り付けると正常に開けます。 #include <iostream> #include <fstream> #include <windows.h> using namespace std; int main(int argc, char **argv) { ifstream ifile("d:\\新規テキスト ドキュメント.txt"); if(ifile) { MessageBox(NULL, "success", "info", MB_OK); ifile.close(); } else { MessageBox(NULL, "failed", "info", MB_OK); } return 0; }
- 787 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:44:52 ]
- >>786
向こうの誘導したレスの前半は無視ですか?
- 788 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:46:51 ]
- えくすぽろーらで開けんだから、ファイルはあるんしょ
- 789 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:49:05 ]
- とりあえずtest.txtで試してみたら?
- 790 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:49:56 ]
- だから、カレントディレクトリはどこなのかとw
- 791 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:50:28 ]
- ソースコードのエンコーディングがutf8なんじゃない?
- 792 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:51:42 ]
- >>787
ファイルはあります。 >>789 "d:\\test.txt"ではsuccessとなります。
- 793 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:52:33 ]
- だったらロケール設定して見るんだ。
- 794 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:53:40 ]
- >>791
ソースコードに // あいうえお と入力して、テキストエディタでエンコードを確認しましたがシフトJISでした。
- 795 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:57:55 ]
- >>793
setlocale(LC_ALL, ""); で出来ました! ありがとうございました!
- 796 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 22:36:43 ]
- 向こうで速攻でロケールについて指摘されているのを無視するからだ・・・
- 797 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:16:36 ]
- なんで無知の身でもらった回答を勝手に「選別」するんだろうな。
- 798 名前:デフォルトの名無しさん [2008/03/11(火) 23:17:43 ]
- 自分クラスのアドレス(実際はthis)をstatic_castで上位クラスにキャストしなおして、上位クラスのメソッドを呼ぼうと思ったのですが
segmentation faultになります。 baseclass::method(); と書いて目的は達成できたのですが、segmentation faultになる理由が分かりません。 #あと、このスレのタイトルが #【初心者歓迎】C/C++室 Ver.50【環境依存OK】 # ってなってるけど、なんか何度かVer.50がくりかえされているような気がするのは自分だけ?
- 799 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:39:18 ]
- だからコードを晒せと。スラッシングが起きてるんじゃねーだろーなー
- 800 名前:デフォルトの名無しさん [2008/03/11(火) 23:51:29 ]
- どこで聞けば良いのかわからなかったので、
環境依存OKということでここでお伺いします。 linuxThreadsでは、あるスレッドでsetpriority()を呼ぶと 親スレッドの優先度は変化しないと思いますが、 NPTLでは同一のPIDならすべて変化するのでしょうか?
- 801 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:52:56 ]
- >linuxThreadsでは、あるスレッドでsetpriority()を呼ぶと
>親スレッドの優先度は変化しないと思いますが、 そうは思えないが。
- 802 名前:778 mailto:sage [2008/03/11(火) 23:54:27 ]
- レスくださった方々ありがとうございます。
noteはなんとなく分かったのですが、candidatesは調べてもわかりませんでした。 candidatesは何のことなんでしょうか・・。 どなたかご教示頂けると幸いです。
|

|