■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

C++相談室 part37
751 名前:デフォルトの名無しさん :04/11/24 01:04:10
コンストラクタとデストラクタを通常の関数と同じように考えてはいかんということでしょ

752 名前:デフォルトの名無しさん :04/11/24 04:44:19
質問です。
ワケあって、int,float,double,boolなど、型の異なる要素の入り混じった
リスト(配列でもいいです)を実現したいのですが(・∀・)イイ!!方法はないでしょうか。
初めポリモフィズムを試したのですが、自分がやりたい事と微妙に違っていましたし、
力技でこの構造を実現しようとすると、どんどん構造やUIがブサイクになっていってしまいますた。

753 名前:デフォルトの名無しさん :04/11/24 04:49:17
>>752
union

754 名前:デフォルトの名無しさん :04/11/24 04:55:52
boost::any

755 名前:デフォルトの名無しさん :04/11/24 05:03:37
どちらにせよ取り出すときに型情報の指定が必要になる罠

756 名前:デフォルトの名無しさん :04/11/24 07:07:36
>>755
C++を使う以上、どうしようもないよね。

757 名前:デフォルトの名無しさん :04/11/24 07:50:31
( ´,_ゝ`)プッ

曖昧さがもたらす混乱と決別する気はないのかよ、お前ら。

758 名前:デフォルトの名無しさん :04/11/24 07:55:25
要素数と順番が固定なら、boost::tupleも使えるかもね。

759 名前:デフォルトの名無しさん :04/11/24 08:09:42
Ruby最強と言うことでファイナルアンサー?

760 名前:デフォルトの名無しさん :04/11/24 09:31:50
類の要員函數を静的にせずに呼び返し函數の引数として
与えるにはどうしたらいいの?


761 名前:デフォルトの名無しさん :04/11/24 09:49:59
>>760
氏ね

762 名前:デフォルトの名無しさん :04/11/24 10:30:46
->より-+>の方がかっこよくね?

763 名前:デフォルトの名無しさん :04/11/24 12:14:57
->より-|>の方がかっこよくね?

764 名前:デフォルトの名無しさん :04/11/24 12:16:11
->より→の方がかっこよくね?

765 名前:デフォルトの名無しさん :04/11/24 12:28:22
-> より ☞ の方がかっこよくね?

766 名前:デフォルトの名無しさん :04/11/24 14:00:29
APL っぽくなってまいりました。

767 名前:デフォルトの名無しさん :04/11/24 17:01:42
なぜそれでUIがブサイクになるのか教えてくれ。

768 名前:デフォルトの名無しさん :04/11/24 17:03:34
C++の規格書の新しい奴は丁寧なつくりのPDFになっているでしょうか?
目次やリンクが張られたものになっているのでしょうか?
14882(1998)みたいに雑なつくりなら買いたくないので。

769 名前:デフォルトの名無しさん :04/11/24 17:33:00
>>768
雑。

770 名前:デフォルトの名無しさん :04/11/24 18:28:29
>>752
boost::variant

>>760
呼び返し函数の仕様による。

771 名前:デフォルトの名無しさん :04/11/24 18:57:55
int a = 0;
int a(0);

どうちがうんですか?

772 名前:デフォルトの名無しさん :04/11/24 19:00:41
違わない。

773 名前:デフォルトの名無しさん :04/11/24 19:04:58
>>771
もう一つこういう書き方もOKらしい。
int a = int(0);

774 名前:デフォルトの名無しさん :04/11/24 19:15:48
std::random_shuffleを要素が二つのものに対して行うと必ず入れ替わるのですが、
入れ替わることもあれば入れ替わらないこともあって欲しい場合にはどうすればいいのですか?


775 名前:デフォルトの名無しさん :04/11/24 19:48:24
>>772-773
わかりました。

776 名前:デフォルトの名無しさん :04/11/24 19:51:54
random_shuffleをrand()回繰り返す

777 名前:デフォルトの名無しさん :04/11/24 20:03:59
>>776
いや〜ん。素晴らしい!
my_random_shuffle書いてたけどそれにします

778 名前:デフォルトの名無しさん :04/11/24 20:22:02
>>774
初めて知った。
全然ランダムになっとらんやん。

779 名前:デフォルトの名無しさん :04/11/24 20:25:22
その代わりランバダになってるよ。

780 名前:デフォルトの名無しさん :04/11/24 20:27:26
じゃあ俺ガンダムになる。

781 名前:デフォルトの名無しさん :04/11/24 20:41:00
>>774
rand()の戻り値の最下位ビット判定でswap()するかどうか決めるんじゃ駄目なのか?

782 名前:デフォルトの名無しさん :04/11/24 20:47:02
>>781
rand()が最下位ビットが0と1交互に出てくる乱数の場合もあるだろ…

783 名前:デフォルトの名無しさん :04/11/24 21:22:24
VC++のヘルプ曰く、
「範囲 [1, last - first) 内の各 N に対して swap(*(first + N), *(first + M)) を 1 回評価します。M は、範囲 [0, N) 全体に対する一様乱分布の値とします。つまり、関数はシーケンス内の要素の順序をランダムにシャッフルします。」
なんで、要素数2なら確実に毎回交換されるだろうな。




784 名前:デフォルトの名無しさん :04/11/24 21:38:30
相談なんですが 別アプリのソフトのコンボボックスのメッセージを
フックしてメモ帳に書き込むことは可能ですか?
 良ければサンプルソースなどお願いします。

785 名前:デフォルトの名無しさん :04/11/24 21:40:18
>random_shuffle
ごくふつーにライブラリのバグじゃん
やること決まってるし・・・

786 名前:デフォルトの名無しさん :04/11/24 21:55:51
>>782
初めて聞いた。
早速ですが具体例を挙げてください。
OS名・コンパイラ名・srand()の乱数種の数値を添えてください。
できればコンパイルオプションも添えてもらいたいです。

みんな興味を持ってると思うので後学のために是非書いてください。
お願いしますよ >>782さん、期待してますんで。

787 名前:デフォルトの名無しさん :04/11/24 22:15:27
昔のrand()で32bit(31bit?)ぐらいの精度の時の乱数は0と1が交互にでてきったとか・・・聞いたことがある
漏れの記憶でのお話です

788 名前:787 :04/11/24 22:16:15
私は782じゃありません

789 名前:デフォルトの名無しさん :04/11/24 22:17:00
それってrand()の下位ビットの周期が短いって話と混同してないか?

790 名前:デフォルトの名無しさん :04/11/24 22:22:56
>>786
俺は782じゃないが、自分でググれ。

791 名前:デフォルトの名無しさん :04/11/24 22:25:04
>>789
処理系によってはマジでそういうのがあるのよ。

792 名前:デフォルトの名無しさん :04/11/24 22:28:23
そこでムェルセンヌツィスタァですよ

793 名前:デフォルトの名無しさん :04/11/24 22:32:30
>>792
それ、メモリ喰い過ぎ

794 名前:デフォルトの名無しさん :04/11/24 22:34:53
手軽な乱数ルーチンって何があるの?

795 名前:デフォルトの名無しさん :04/11/24 22:36:11
>>794
rand()

796 名前:デフォルトの名無しさん :04/11/24 22:56:18
>>795
rand()が最下位ビットが0と1交互に出てくる乱数の場合もあるだろ…

797 名前:デフォルトの名無しさん :04/11/24 22:59:37
>>796
それってrand()の下位ビットの周期が短いって話と混同してないか?


798 名前:デフォルトの名無しさん :04/11/24 23:06:55
ユニコードでの文字処理に関してなのですが、
VC6で_MBCSを削除し_UNICODEとUNICODEを追加してユニコード対応にしました。
LPTSTR a;
_tcscpy(a, _T("ハロー"));
このコードがビルドは通るのですが、実行するとエラーになるのです。エラー個所は_tcscpyが展開された
wchar_t * __cdecl wcscpy(wchar_t * dst, const wchar_t * src)
{
wchar_t * cp = dst;

while( *cp++ = *src++ )
; /* Copy src over dst */

return( dst );
}
のwhile文で起こっています。どこが間違っているのか教えていただけるでしょうか。

799 名前:デフォルトの名無しさん :04/11/24 23:08:51
LPTSTRは実質wchar_t*なわけだが。で、ポインタaはどこを指してるんだ?

800 名前:デフォルトの名無しさん :04/11/24 23:13:30
>>799
初めて聞いた。
早速ですが具体例を挙げてください。
OS名・コンパイラ名・srand()の乱数種の数値を添えてください。
できればコンパイルオプションも添えてもらいたいです。

みんな興味を持ってると思うので後学のために是非書いてください。
お願いしますよ >>799さん、期待してますんで。

801 名前:デフォルトの名無しさん :04/11/24 23:14:17
copipe uzai

802 名前:デフォルトの名無しさん :04/11/24 23:15:43
思うんだが、>>786って、なんというか、小学生がよく言う、
「何年何月何日何分何秒に!?」ってやつと同じ匂いがするよな。

803 名前:デフォルトの名無しさん :04/11/24 23:15:57
>>801
そーゆー方面の文句ある奴は煽ってねえで削除板池
礼儀を諭しているつもりか知らんが自分が反則してることに気付よ早く

804 名前:気付よ :04/11/24 23:16:39
気付よ

805 名前:デフォルトの名無しさん :04/11/24 23:17:04
ハァ????

806 名前:デフォルトの名無しさん :04/11/24 23:19:23
ああ機能の人格障害君か
・・・放置

807 名前:デフォルトの名無しさん :04/11/24 23:19:23
メモリを初期化する関数でmemsetってありますよね。
現場のコーディングルールで、構造体を使う時は、必ずmemsetで初期化しなさいと言われたので、
「なんで?」って聞いたら、「常識だろ?」って怒られちった・・・。

常識のない私に理由を教えてくれる人がいるとすごくうれしいです。


808 名前:デフォルトの名無しさん :04/11/24 23:20:44
>>807
非常識はコーディングルールにゴネたこと

809 名前:デフォルトの名無しさん :04/11/24 23:21:55
>>807
ああ、それは馬鹿がやることだ。

810 名前:デフォルトの名無しさん :04/11/24 23:23:13
C++ならコンストラクタで初期化すりゃいいのに。

811 名前:デフォルトの名無しさん :04/11/24 23:24:31
>>809
そういえばstaticも馬鹿だな

812 名前:デフォルトの名無しさん :04/11/24 23:29:35
構造体の初期化なら={0};じゃないのか。

813 名前:デフォルトの名無しさん :04/11/24 23:32:05
>>807
理由はこうだ。

int *a = new int
*a = 123;

delete a;

int *b = new int

cout << *b << endl;


ってやると、bが123として表示される。
つまり、単にゴミデータが残るのならまぁ許すとして、前にnewしたときに
設定したデータが、後でゴミとして残ってしまう。
このようなリスペクトなバグは排除したほうがよい。

ちなみに、問題なのはヒープ領域であって、スタック領域だと、自動的に初期化してくれるので問題なし!




814 名前:デフォルトの名無しさん :04/11/24 23:42:23
new String と new String() の意味は同じであるが、
クラスではなく int などのスカラー型の場合、標準の5.3.4節では
前者の形式では割り当てられたオブジェクトの値は不定になり、
後者の形式ではメモリは0で初期化されるということを明記している

C++プログラミングの処方箋より抜粋


つまり int *b = new int(); とすればmemsetなどは必要なし?

815 名前:デフォルトの名無しさん :04/11/24 23:43:06
>>802
小学生呼ばわりでも全然構わない。
お前が実例・具体例を挙げれば全て解決する。
処理系がある、だけではわからん。
rand()で奇数と偶数が交互に返される実装があるんだろ?
ライブラリの名前だけでも書けよ、礼儀として。

816 名前:デフォルトの名無しさん :04/11/24 23:48:53
>>802
小学生呼ばわりでも全然構わない。
お前が実例・具体例を挙げれば全て解決する。
処理系がある、だけではわからん。
rand()で奇数と偶数が交互に返される実装があるんだろ?
ライブラリの名前だけでも書けよ、礼儀として。

817 名前:デフォルトの名無しさん :04/11/24 23:49:21
>>802
小学生呼ばわりでも全然構わない。
お前が実例・具体例を挙げれば全て解決する。
処理系がある、だけではわからん。
rand()で奇数と偶数が交互に返される実装があるんだろ?
ライブラリの名前だけでも書けよ、礼儀として。

818 名前:デフォルトの名無しさん :04/11/24 23:50:00
>>802
小学生呼ばわりでも全然構わない。
お前が実例・具体例を挙げれば全て解決する。
処理系がある、だけではわからん。
rand()で奇数と偶数が交互に返される実装があるんだろ?
ライブラリの名前だけでも書けよ、礼儀として。

819 名前:デフォルトの名無しさん :04/11/24 23:50:48
池沼

820 名前:デフォルトの名無しさん :04/11/24 23:53:43
また出たよ母親に問題あるやつ

821 名前:デフォルトの名無しさん :04/11/24 23:54:01
>>815
お前も人に聞く前に少しくらいググれよ、礼儀として。

822 名前:デフォルトの名無しさん :04/11/24 23:54:22
あ、そーなのー・・・ぐらいで軽く流せないのかね
会社で相当いじめられてるのは同情するけどさ

823 名前:デフォルトの名無しさん :04/11/24 23:54:45
Ruby最強!

824 名前:デフォルトの名無しさん :04/11/24 23:55:49
よっぽど悔しかったんだね

825 名前:815 :04/11/24 23:57:13
>>816-818
コピペは止めてもらえないだろうか。こちらは真面目に質問している。
具体例を挙げるべき人が荒らしているのかもしれないが、
そんな暇があったら名前を挙げてくれればよいのに。実に簡単なことだろ?

826 名前:デフォルトの名無しさん :04/11/24 23:58:36
恥ずかしい香具師とはいっしょにいたくないよね。
仲間と思われたくないし。

827 名前:デフォルトの名無しさん :04/11/25 00:05:37
>>797
俺だったら、これが真実だとしても全然問題ないと思うんだが

828 名前:デフォルトの名無しさん :04/11/25 00:06:02
検索すらろくに出来ないような低脳じゃ同僚に冷たくあしらわれても仕方ないわな
しかしその憂さ晴らしをここでするのは勘弁してもらいたいな

829 名前:デフォルトの名無しさん :04/11/25 00:07:18
同僚がでてきたぞw

830 名前:デフォルトの名無しさん :04/11/25 00:12:36
>>825
本当に真面目に訊いてんだったらちょっとでいいからググってみれ。
それで本当に見つけれないんだったらお前、プログラマとしてちょっとヤバイぞ。

831 名前:デフォルトの名無しさん :04/11/25 00:14:28
ここは質問するためのスレじゃないの?
検索しろで済ますのならスレ自体いらんでしょ。

832 名前:デフォルトの名無しさん :04/11/25 00:14:53
デフォルトコンストラクタって0で初期化してくれなかったっけ?

833 名前:デフォルトの名無しさん :04/11/25 00:19:33
MacOS X & ProjectBuilder & SDLでLifeゲームを作ってたんだけどどうもおかしい。
Win2000 & BCC32の時にうまく動いてたコードをそのままコンパイルしたんだけど縞々模様が出たまま動かない。
初期化するときに(rand() % 2)を使ってるんだけど良く見てみるとrand()が奇数と偶数を交互に返してる(ぉぃぉぃ。
srand()以外になんか準備がいるんすかぁ?

834 名前:デフォルトの名無しさん :04/11/25 00:20:45
UNIX の /usr/ucb/cc、gcc、g++を解析した結果、 rand( ) は以下の動作をすることがわかった。

static long x=1;
void srand(unsigned s) { x=s; }
long rand() { x=x*1103515245+12345; return x&2147483647; }

これは、非常にシンプルな線形合同法である。この乱数の最下位ビットは0と1の繰り返しになる。
すなわち、偶数と奇数が交互に生成される。このことから、この乱数で下位ビットを乱数として使うのは危険であることがわかる。
また、ある乱数が得られたら、次に現れる乱数が1種類しかないという欠点も持つ。

835 名前:デフォルトの名無しさん :04/11/25 00:22:07
>>831
まったくだ
何かディープに勘違いしてる「回答者」には困ったものだな

836 名前:デフォルトの名無しさん :04/11/25 00:22:42
あーあツマンネ

837 名前:デフォルトの名無しさん :04/11/25 00:23:15
おこんばんは、お願いいたします。
ステップ実行時、「ほにゃららDllが見つかりません」と言われます。

とあるexeから、自分の作っているdllを呼ぶ処理です。
プロジェクトの「設定」で、とあるexeを指定して、
そのexeでファイル選択をすると、
自分のdllのソースのブレークポイントで止まってくれる予定なのですが。。。


プロジェクトの「設定」のどこかに、
関連するdllを列挙する必要って、ありましたっけ?
何が設定不足なのでしょうか?
よろしくお願いいたします。

838 名前:デフォルトの名無しさん :04/11/25 00:24:27
そうだ、このスレはそもそも必要なかったのだ。

我々はぁぁ!
この(類の)スレのぉぉ!
永久停止を要求するぅぅ!

839 名前:デフォルトの名無しさん :04/11/25 00:28:20
Rubyで全部解決すると言っておろうが!

840 名前:815 :04/11/25 00:28:40
>>833-834
降参します。orz

841 名前:デフォルトの名無しさん :04/11/25 00:34:09
>>837
スレ違い。自分が使用している開発環境の専用スレに逝け。

842 名前:デフォルトの名無しさん :04/11/25 00:35:23
>>831,>>835
検索しても簡単にわからんことなら仕方がないが、
検索すればすぐに分かるようなことを検索するように勧めても
尚、検索しようともしない馬鹿の言い訳にはならない。

843 名前:デフォルトの名無しさん :04/11/25 00:37:31
まさか本当に検索できなかったわけじゃないよな?

844 名前:デフォルトの名無しさん :04/11/25 00:40:26
水に落ちた犬は(ry かよ。お前らも容赦ないなwwwwwwwwwwwww

845 名前:デフォルトの名無しさん :04/11/25 00:41:17
福祉施設職員を少しは見習ってもらいたいものだ。

846 名前:デフォルトの名無しさん :04/11/25 00:44:02
>>842
キーワードでも示してやったら? 「回答者」さん

847 名前:デフォルトの名無しさん :04/11/25 00:45:29
"rand 偶数 奇数 交互"

848 名前:デフォルトの名無しさん :04/11/25 00:46:05
まさかキーワードが思い浮かばなかったわけじゃないよな?

849 名前:デフォルトの名無しさん :04/11/25 00:46:35
すんません。三行三列と三行二列の行列の積を求める書き方教えてください。
めんどくさかったら軽いヒントでもいいんで
ちなみに初期数値は与えられてます。forを使うみたいですがいまいち・・・

850 名前:デフォルトの名無しさん :04/11/25 00:46:58
まさか検索エンジンが思い浮かばなかったわけじゃないよな?

851 名前:デフォルトの名無しさん :04/11/25 00:47:11
テンプレにgoogleのURLが必要なのだろうかw

852 名前:デフォルトの名無しさん :04/11/25 00:48:27
>>849
数学板逝け

853 名前:デフォルトの名無しさん :04/11/25 00:49:32
>>849
教科書嫁

854 名前:デフォルトの名無しさん :04/11/25 00:49:52
>>848
まさか答えがわからなかったわけじゃないよな? 「回答者」さん

855 名前:デフォルトの名無しさん :04/11/25 00:52:38
|abc||pq|
|def||rs|=ap+br+ct+dp+...+fs+iu
|ghi||tu|

856 名前:デフォルトの名無しさん :04/11/25 00:52:49
>>844
水に落ちた犬は・・・の続きは何?
「水に落ちた犬を打つ」があるけど、それとは違うっぽいのでググッたほうがいいのかな。

857 名前:デフォルトの名無しさん :04/11/25 00:53:43
Linux&g++でシステムコールを使う時について質問します。
gccで.h等をインクルード無しで使えていたread(,,)等のシステムコールがImplisitエラーを出します。
g++になってシステムコールの使用法に変化があるのでしょうか?

858 名前:デフォルトの名無しさん :04/11/25 00:54:39
このスレはC++相談室なわけだが・・・

859 名前:デフォルトの名無しさん :04/11/25 00:55:12
Implisitってなんですか

860 名前:デフォルトの名無しさん :04/11/25 00:55:24
>>848
実際、そういう人もいるよ。
多分、>>846もそういう人なんだろ。

861 名前:デフォルトの名無しさん :04/11/25 00:55:55
C++の仕様が原因かどうかを論じるならスレタイ合致だな

862 名前:デフォルトの名無しさん :04/11/25 00:57:55
>>857
man readして必要なヘッダをインクルードしろ。C++では宣言無しでは関数は使えない。

863 名前:デフォルトの名無しさん :04/11/25 01:00:53
>>862
だったらコンパイルエラーのはずだ
857 を読む限り実行時の障害のように聞こえる

864 名前:デフォルトの名無しさん :04/11/25 01:03:13
おいおいおいおいいおいおいおいおい

865 名前:デフォルトの名無しさん :04/11/25 01:05:32
>>864
コンパイルエラーのメッセージテキストには implicit なる語は出てこないだろ

866 名前:デフォルトの名無しさん :04/11/25 01:07:05
>>865
出るよ

867 名前:デフォルトの名無しさん :04/11/25 01:14:04
implicit declaration of function です。
コンパイルエラーです。
文字と>>862さんから推察するとgccでは暗黙の宣言として使っていたのが
g++では使えなくなったということですね。
方法を探してみます。ありがとう御座いました。

868 名前:デフォルトの名無しさん :04/11/25 01:14:38
$ g++ test01.cpp
test01.cpp: In function `int main()':
test01.cpp:3: error: `read' undeclared (first use this function)
test01.cpp:3: error: (Each undeclared identifier is reported only once for each
function it appears in.)

869 名前:デフォルトの名無しさん :04/11/25 01:17:17
>>867
g++というよりc++でだよ


870 名前:デフォルトの名無しさん :04/11/25 01:53:46
>>869これはすいませんでした。仕様を間違えてはいけませんね。
#include <unistd.h> が必要でした。
皆さんありがとう御座いました。

871 名前:デフォルトの名無しさん :04/11/25 06:12:47
std::string が空文字列で初期化されることって保証されてるんですか?

872 名前:デフォルトの名無しさん :04/11/25 06:30:46
std::listってクイックソート出来ないんですか?
std::sortは使えないし

873 名前:デフォルトの名無しさん :04/11/25 06:36:20
>>872
std::list::sort()ってメンバ関数はマージソート(安定ソート)だがなかなか速い。
O記法によるオーダもO(NlogN)でクイック・ソートと同じだし。但し平均的な
コンピュータのアーキテクチャではクイック・ソートの1/2程度の速度になる。

874 名前:782 :04/11/25 07:50:32
uwaaaaヽ(`Д´)ノaaaan

875 名前:デフォルトの名無しさん :04/11/25 10:27:04
こういうのって、foo が先に初期化されるのか、
Base が先に初期化されるのか、どちらでしょうか?

class Hoge : Base {
  Foo foo;
public:
  Hoge(void) : foo(100), Base(&foo) {}
};

876 名前:デフォルトの名無しさん :04/11/25 10:31:33
>>875
FooとBaseのコンストラクタにプローブ入れて試せば?


877 名前:デフォルトの名無しさん :04/11/25 10:31:56
>>875
コンストラクタ
ベース→メンバ(宣言した順)→自身
デストラクタ
自身→メンバ(宣言と逆順)→基底

878 名前:デフォルトの名無しさん :04/11/25 10:35:42
じゃぁ、Base で Foo の関数を呼び出すことはできないのですね。
それは不便ですねぇ。。。

879 名前:デフォルトの名無しさん :04/11/25 10:40:47
Baseの初期化にFooが必要なら、BaseにFooを持たせてしまえば?

880 名前:デフォルトの名無しさん :04/11/25 10:44:02
いえ、Foo は FooBase を継承するクラスで、
Base のコンストラクタは FooBase* なら何でもとるのです。
Base のコンストラクタで FooBase の関数を呼び出したいのです。

881 名前:デフォルトの名無しさん :04/11/25 11:09:50
>>880
設計見直せ

882 名前:デフォルトの名無しさん :04/11/25 11:18:07
>>881
ありがとう。見直してみます。
だけど、C++ ってここらへんがぎこちないですね。
初期化リストの記述順に初期化してくれればいいのに。。。

883 名前:デフォルトの名無しさん :04/11/25 11:21:53
>>882
よく考えろボケ

884 名前:デフォルトの名無しさん :04/11/25 11:36:55
君の頭の方がぎこちないです。

885 名前:デフォルトの名無しさん :04/11/25 12:01:32
C++のぎこちなさが嫌だったらさっさと他の言語に乗り換えて下さいです。。

886 名前:デフォルトの名無しさん :04/11/25 12:06:14
ひろゆきキター

887 名前:デフォルトの名無しさん :04/11/25 12:30:59
??

888 名前:デフォルトの名無しさん :04/11/25 14:23:54
キャッシュを行うクラスを作ろうと思います。

// int から int への関数のキャッシュを行うクラス。
class Cache {
public:
    typedef int (*Func)(int n);
private:
    map<int,int>    _map;
    Func            _func;
public:
    Cache(Func func) : _func(func) {}

    int Get(int n)
    {
        int result;
        map<int,int>::const_iterator it = _map.find(n);
        if (it == _map.end()) {
            result = _func(n);
            _map.insert(map<int,int>::value_type(n, result));
        }
        else {
            result = (*it).second;
        }
        return result;
    }
};


889 名前:デフォルトの名無しさん :04/11/25 14:24:45
class SomeFunc {
private:
    Cache _cache;
    static int Plus1(int n) { return n + 1; }
public:
    SomeFunc(void) : _cache(Plus1)
    {}

    int Get(int n) 
    {
        return _cache.Get(n);
    }
};

890 名前:デフォルトの名無しさん :04/11/25 14:26:07
この Func を C 関数や静的関数ではなく、
メンバ関数とするにはどうしたらよいでしょうか?
よろしくお願いします。

891 名前:デフォルトの名無しさん :04/11/25 14:53:35
boostのfunction&bindかな

892 名前:デフォルトの名無しさん :04/11/25 14:55:06
>>890
template <typename T>
class Cache {
public:
typedef int (T::*Func)(int);
private:
map<int,int> _map;
T *obj_;
Func _func;
public:
Cache(T *obj, Func func) : obj_ (obj), _func(func) {}
int Get(int n) {
int result;
map<int,int>::const_iterator it = _map.find(n);
if (it == _map.end()) {
result = (obj_->*_func)(n);
_map.insert(map<int,int>::value_type(n, result));
} else {
result = (*it).second;
}
return result;
}
};
class SomeFunc {
private:
Cache <SomeFunc> _cache;
int Plus1(int n) { return n + 1; }
public:
SomeFunc(void) : _cache(this, &SomeFunc::Plus1) {}
int Get(int n) {return _cache.Get(n);}
};


893 名前:デフォルトの名無しさん :04/11/25 14:56:04
>>890
Cacheをテンプレートクラスにすれば

894 名前:デフォルトの名無しさん :04/11/25 15:16:17
ご回答ありがとございます。m(__)m
>>891
ごめんなさい、boost はできるだけ使いたくないんです。。。
同じようなことを手動でやれればいいのですが。
>>892 >>893
やっぱりテンプレート使わないといかんですか。うーん。

895 名前:デフォルトの名無しさん :04/11/25 15:17:55
1クラス1キャッシュでいいなら
継承使ってできそうな気がしなくもない

896 名前:デフォルトの名無しさん :04/11/25 15:20:59
それは、SomeFunc を Cache から派生させるということですよね。
SomeFunc はすでに別のクラスから派生しているんです (多重継承はあまりしたくない)。
それに Cache という機能単位を継承で使うのはよい設計ではないように
思いますが、いかがでしょうか。

897 名前:デフォルトの名無しさん :04/11/25 15:24:31
>>896
>それに Cache という機能単位を継承で使うのはよい設計ではないように
>思いますが、いかがでしょうか。
まそうだろうね
boostとかテンプレートとか躊躇してるのは何で?



898 名前:デフォルトの名無しさん :04/11/25 15:31:52
> boostとかテンプレートとか躊躇してるのは何で?
テンプレートにいい思い出がないのが一番の理由です。
今 VC6 を使っているんですけど、
テンプレートの一部の機能が使えなかったり、
複雑になるとバグが発生したりして、
使いすぎると生産性が確実に低下するように思います。

あと、できるだけ外部のライブラリに依存したくないという意味で
boost は使いたくないわけです。

899 名前:デフォルトの名無しさん :04/11/25 15:44:21
VC6はご愁傷様です

>できるだけ外部のライブラリに依存したくない
この方針があなたの決断によるものなら考え直した方がいいと思いますよ
これじゃライブラリの立つ瀬が無いですからね


900 名前:デフォルトの名無しさん :04/11/25 16:03:44
アンチパターンに当てはまりまくりだな

901 名前:デフォルトの名無しさん :04/11/25 16:12:55
貧乏人がWindowsのプログラム書くなよ

902 名前:デフォルトの名無しさん :04/11/25 16:22:17
なんかlinuxerは貧乏人みたいにとれるな

903 名前:デフォルトの名無しさん :04/11/25 16:28:42
関数内のstatic変数は、最初にその関数が呼ばれたときに初期化されるそうですが
例えば

class Hoge {...];

void foo() {
static Hoge hage;
}

というのがあって、複数のスレッドがfooを同時に呼び出した場合
hageの初期化は同期されるのでしょうか?


904 名前:デフォルトの名無しさん :04/11/25 16:29:17
金を使わない奴は金がないやつ同様貧乏人。

905 名前:デフォルトの名無しさん :04/11/25 16:35:04
>>903
C++の規格ではマルチスレッドのことは考えてないので、環境によります。

906 名前:デフォルトの名無しさん :04/11/25 16:35:46
同期が保証されないから、
MeyersのSingletonはマルチスレッドでは使えない

907 名前:デフォルトの名無しさん :04/11/25 16:36:40
>>904
感心した


908 名前:デフォルトの名無しさん :04/11/25 16:48:18
金を使えば技術を得られるわけでもない

909 名前:デフォルトの名無しさん :04/11/25 16:50:09
>>908
感心した

910 名前:デフォルトの名無しさん :04/11/25 16:55:20
金を使わないヘタレに存在意義なし

911 名前:デフォルトの名無しさん :04/11/25 16:57:26
>>910
感心した










とでも言ってもらいたいのか?

912 名前:デフォルトの名無しさん :04/11/25 18:02:35
借金まみれの俺は金持ち


913 名前:デフォルトの名無しさん :04/11/25 18:51:56
vector<int> の中に整数が重複して入っていて、
その中の最頻値を取り出したいとします。
このような処理を STL を使って完結に表現することはできるでしょうか?

914 名前:デフォルトの名無しさん :04/11/25 18:53:10
はい。

915 名前:デフォルトの名無しさん :04/11/25 18:58:56
どのようにすればできるか教えていただけるでしょうか。

916 名前:デフォルトの名無しさん :04/11/25 19:46:03
>>915
誰か教えてくれるでしょう。

917 名前:デフォルトの名無しさん :04/11/25 20:09:59
クォータニオンまで扱える算術ライブラリってDirectX以外でありますか?
漫然と>>8を眺めてみたのですが、いまいち見つかりませんで

DirectXの物は中々使い心地が良いのですが、DirectXが使えない環境になりそうで困っています

918 名前:デフォルトの名無しさん :04/11/25 20:57:57
boost::quaternion

919 名前:デフォルトの名無しさん :04/11/25 21:02:01
クォータニオンなんて自作したって
1、2時間でできるんでは?

920 名前:デフォルトの名無しさん :04/11/25 21:04:35
>>918
BLAS…というかnumericの所しか見てなかったですよ
boost凄いなぁ…ありがとうございました、勇んでいじってみます

921 名前:デフォルトの名無しさん :04/11/25 21:07:19
>>919
まぁ、実際そうで、私も自前(と言ってもほぼとあるオープンソースのパクリ)のはあるのですが
自前だとまずい部分が色々とあったりで…boost情報助かりました

922 名前:デフォルトの名無しさん :04/11/25 21:08:30
>>915
あいよっ
template <typename T, template <typename> class Container> inline
pair <T, size_t> mode_count (const Container <T> &p) {
typedef std::map <T, size_t> Counter_Register;
Counter_Register counter_register;
for (typename Container <T>::const_iterator itr (p.begin ()), last (p.end ());
itr != last; ++ itr) ++ counter_register [*itr];
struct Local {
typedef typename Counter_Register::value_type Value_Type;
static bool less_by_second (const Value_Type &lhs, const Value_Type &rhs) {return lhs.second < rhs.second;}
};
return *max_element (counter_register.begin (), counter_register.end (), &Local::less_by_second);
}
template <typename T, template <typename> class Container> inline
T mode (const Container <T> &p) {
return mode_count (p).first;
}
もっとエレガントなのは誰か教えてくれるでしょう。


923 名前:913 :04/11/25 21:14:14
>>922
すいません。ありがとうございます。
自分でも作ってみたのですが、あまりきれいになりませんでした。
よく読んでみます。とりいそぎ、お礼まで。

924 名前:デフォルトの名無しさん :04/11/25 21:25:16
>>922
>template <typename T, template <typename> class Container> inline
template templateパラメータはテンプレートパラメータの数がデフォルトも全部展開した
数に一致して無いといけないので,STLのシーケンスを取るならパラメータ2つ要りますよ.
あとTはContainer::value_typeで取れるから結局コンテナの型をパラメータにするのが
妥当だと思うんですけどね.

template<typename Container>

細かいツッコミ失礼.ちなみに自分ならiteratorを引数にしたいかも.

925 名前:デフォルトの名無しさん :04/11/25 21:27:46
>>922
Local::less_by_secondはローカルだけどテンプレート引数に出来るの?

926 名前:デフォルトの名無しさん :04/11/25 21:38:41
>>924
やっぱ修正するのはオイラかい?
template <typename Iterator> inline
pair <typename Iterator::value_type, size_t> mode_count (Iterator first, Iterator last) {
typedef typename Iterator::value_type Value_Type;
typedef std::map <Value_Type, size_t> Counter_Register;
Counter_Register counter_register;
for (; first != last; ++ first) ++ counter_register [*first];
struct Local {
typedef typename Counter_Register::value_type Value_Type;
static bool less_by_second (const Value_Type &lhs, const Value_Type &rhs) {return lhs.second < rhs.second;}
};
return *max_element (counter_register.begin (), counter_register.end (), &Local::less_by_second);
}
template <typename Iterator> inline
typename Iterator::value_type mode (Iterator first, Iterator last) {
return mode_count (first, last).first;
}
template <typename Container> inline
pair <typename Container::value_type, size_t> mode_count (const Container &p) {
return mode_count (p.begin (), p.end ());
}
template <typename Container> inline
typename Container::value_type mode (const Container &p) {
return mode (p.begin (), p.end ());
}
もっといいアルゴリズムはないの?


927 名前:922 == 926 :04/11/25 21:41:04
>>925
g++(3.3.4)だと通るんだけどまづいっけ?

>>924
それと言い忘れたありがとう
925も


928 名前:デフォルトの名無しさん :04/11/25 22:12:56
>>925
ローカルクラスがテンプレート引数に出来ない問題との違いは,
型が外部リンケージを持っているかどうか.
Local::less_by_secondの型はbool (*)(Value_Type const &, Vlue_Type const &)で,
これは外部リンケージを持った型なのでテンプレート引数に出来るはず.

929 名前:デフォルトの名無しさん :04/11/25 22:48:40
std::stringの変数にabcが入っていたとします。
で、この変数にabc又はABCが入っていることをエレガントに確認するにはどうしたらよいでしょうか?
(つまり、小文字、大文字意識せずに、findしたいってことです)



930 名前:デフォルトの名無しさん :04/11/25 22:49:48
>>929
私はいつも stricmp(str.c_str(), "abc") しているけど、C++ 的にはどうやるんかな。

931 名前:デフォルトの名無しさん :04/11/25 23:17:51
>>930
>>929をよく読むこと。

932 名前:デフォルトの名無しさん :04/11/25 23:19:21
>>929
面倒なのでboost::regex

933 名前:デフォルトの名無しさん :04/11/25 23:31:20
STL の string って貧弱だよな。
もっとメンバ関数充実させてほしい。

934 名前:デフォルトの名無しさん :04/11/25 23:32:01
そこでRubyですよ

935 名前:デフォルトの名無しさん :04/11/25 23:35:05
>>933
うん、激しく同意。
俺が思うに、これは何かの陰謀が働いていると思う。


936 名前:デフォルトの名無しさん :04/11/25 23:36:43
そこでRubyですよ


937 名前:デフォルトの名無しさん :04/11/25 23:44:41
そこでboost string algorithm

938 名前:モウモウ :04/11/26 00:05:26
>>929
一応こんなんでできるけど。

struct CharEqualIC {
    inline bool operator() (char c1, char c2) 
    {
        return (toupper(c1) == toupper(c2));
    }
};

int main(void)
{
    string str1 = "xxxx Abc xxxx";
    string str2 = "abc";

    string::iterator it = search(str1.begin(), str1.end(), str2.begin(), str2.end(), CharEqualIC());
    cout << (it - str1.begin());

    return 0;
}

939 名前:デフォルトの名無しさん :04/11/26 00:25:02
>>938
汚物

940 名前:デフォルトの名無しさん :04/11/26 00:44:02
>>929
std::string str = "fgafjkAbCasln;tj";
std::cout << boost::algorithm::ifind_first(str, "abc").begin() - str.begin() << std::endl;
// 6が出力される。

std::string str = "fgafjkasln;tj";
std::cout << boost::algorithm::ifind_first(str, "abc").begin() - str.begin() << std::endl;
// 13が出力される。すなわちboost::algorithm::ifind_first(str, "abc").begin()==str.end()

941 名前:デフォルトの名無しさん :04/11/26 01:23:54
>929
std::mismatch 使って頑張れ

Effective STL の35項も参考になる。

942 名前:デフォルトの名無しさん :04/11/26 01:40:46
>>922,926
Iterator::value_type ではポインタを渡したときにエラーになる
※入力シーケンスは空でないという事前条件が必要

template<typename Iterator>
std::pair<typename std::iterator_traits<Iterator>::value_type, std::size_t> mode_count(Iterator first, Iterator last)
{
  typedef typename std::iterator_traits<Iterator>::value_type value_type;
  typedef std::pair<value_type, std::size_t> result_type;
  std::map<value_type, std::size_t> counts;
  result_type const* max = 0;
  for(; first != last; ++first)
  {
    result_type& counted = counts[*first];
    ++counted.second;
    if(!max || counted.second > max->second)
      max = &counted;
  }
  return *max;
}

943 名前:デフォルトの名無しさん :04/11/26 02:59:48
値を返す関数の戻り値をconst参照で受け取ったらまずいですか?

extern XXX get_value();

const XXX& xxx = get_value();

テンポラリへの参照になってしまうんでしょうか?
最適化をするとおかしくなってしまうようなんです

944 名前:デフォルトの名無しさん :04/11/26 04:26:01
>>943
クラスのインスタンスのデータメンバや静的データメンバ、
関数の静的変数、大域変数、静的変数を返したいときは、
const参照を返してもだいじょうぶ。

const参照を返したら駄目なのは関数内のローカル変数。

945 名前:デフォルトの名無しさん :04/11/26 05:09:39
>>943
あー、その場合の寿命ってどうなるんだろうな。
規格書読まなきゃわかんないな。

でもこのケースだったら無難に
const XXX xxx = get_value();
でいいんじゃないの。


946 名前:デフォルトの名無しさん :04/11/26 05:16:00
バカばっかり
テンポラリに決まってんだろ
禿本くらい読め

947 名前:デフォルトの名無しさん :04/11/26 08:32:23
>943
その関数の戻り値であるところのテンポラリは,規格としては
const参照のlife-timeまで寿命が延びる(12.2/5)ので大丈夫なはずです.
http://www.kuzbass.ru:8086/docs/isocpp/special.html#class.temporary
なので,
>最適化をするとおかしくなってしまうようなんです
というのはプログラムがおかしいかコンパイラが規格に準拠していないか・・・.
で,結論としては945さんに同意.

>944
多分文脈を読み間違えているかと.

948 名前:デフォルトの名無しさん :04/11/26 09:07:18
template <class Container, class T>
inline Container makeContainer(const T& t)
{ return Container(boost::begin(t), boost::end(t)); }

typedef std::vector<char> CharVec;

const char* p = "Hello, world";
CharVec c(makeContainer<CharVec>(p));

これがコンパイル通らないんですが仕様でしょうか…?
makeContainer(T& t) にすると大丈夫なんですが…

949 名前:デフォルトの名無しさん :04/11/26 09:28:43
boost知らんけど、ポインタなんだか参照なんだかしっちゃかめっちゃかだな。

950 名前:デフォルトの名無しさん :04/11/26 09:46:26
>948
boost::begin/endがchar const * constに対応してないのが原因.
というか,そういうことがしたいなら以下で良いのでは?

CharVec c(boost::begin(p), boost::end(p));

951 名前:デフォルトの名無しさん :04/11/26 10:04:44
>948
追記.char (const) * constはRangeのモデルにならないです.
動かせないポインタ渡されて'\0'探せって言われても困るでしょ.
もし,その枠組みでやるなら以下か

CharVec c(makeContainer<CharVec>(boost::make_iterator_range(p)));

もしくはmakeContainerをchar (const) *について特殊化するか,かな.

952 名前:951 :04/11/26 10:09:52
-もしくはmakeContainerをchar (const) *について特殊化するか,かな.
+もしくはmakeContainerをchar const *についてオーバーロードするか,かな.

953 名前:デフォルトの名無しさん :04/11/26 10:27:00
> 追記.char (const) * constはRangeのモデルにならないです.
> 動かせないポインタ渡されて'\0'探せって言われても困るでしょ.

ポインタをコピーすれば困らないよ。
range側の特殊化が抜けてるだけじゃないの?

954 名前:デフォルトの名無しさん :04/11/26 11:29:43
#include <vector>

struct ClassV{
int val;
std::vector<int> vecInt;
};

int main(int argc, char* argv[]){
std::vector<ClassV> vecClassV;

vecClassV.reserve( 5 ); //resizeならBもerrorにならない
for( int i=0; i < 5; ++i ){
vecClassV[i].val = 4649; //errorが出ない …A
}
for( int c=0; c < 5; ++c ){
vecClassV[c].vecInt.reserve(10); //error …B
}
return 0;
}

お願いします、上記のコードなのですが、
恐ろしいことに今までreserveを使いAみたいな事をしていました。
しかしBのようにコンテナを使わない限り、今までの所、特に困ったこともありませんでした。
全て書き直す前にお尋ねしたいのですが、Aが上手くいっていたのは偶然なのでしょうか?

955 名前:デフォルトの名無しさん :04/11/26 11:45:16
reserveってのはresize時の効率を上げるためにあらかじめ領域を予約するものであって、実際にresizeするまではその領域を使っては*いけない*。
領域自体は確保済みなので一般保護例外などはでないだろうが、vector内部の管理情報は壊れていても不思議ではない。


956 名前:954 :04/11/26 11:48:03
>>955
ありがとうございます。コンテナ以外もたまたま動いていただけなんですね。
全力で全痴漢してきます。

957 名前:デフォルトの名無しさん :04/11/26 18:58:01
メンバのoperator==はメンバ関数ポインタに入れられないのですか?

958 名前:デフォルトの名無しさん :04/11/26 19:34:53

std::vector<boost::shared_ptr<Foo> >::iterator i
= std::find_if( hoge.begin(), hoge.end(),boost::bind( &Foo::operator==, _1, foo ) );
としたいのです

959 名前:デフォルトの名無しさん :04/11/26 20:01:53
std::equal_to

960 名前:デフォルトの名無しさん :04/11/26 20:18:59
>>958
問題なさそうに見えるが、Foo か operator== のどちらかがテンプレート引数を必要としたりオーバーロードで曖昧になってたりしないか?

961 名前:デフォルトの名無しさん :04/11/26 20:49:05
>953
やっぱりそうなんですかねぇ.

>958
それだとshared_ptr<Foo>のoperator==を呼ぼうとしますよ.
indirect_iterator使って

vector<shared_ptr<Foo> >::iterator i
= find_if(make_indirect_iterator(hoge.begin()),
make_indirect_iterator(hoge.end()),
bind(&foo::operator==, _1, foo3) ).base();

とか,lambda使って

vector<shared_ptr<foo> >::iterator i
= find_if(hoge.begin(), hoge.end(), bind(&foo::operator==, *_1, foo3));

とか(このbindはlambdaのbind).というか普通にfindで良いんじゃ・・・.

962 名前:958 :04/11/26 21:10:03
>>959
それだとshared_ptrの==が使われてしまい意図したものではありません。

>>960
おっしゃるとおりでコンパイラは”関数の引数があいまいなためテンプレート引数を減少できません。”といっていました。
Fooのoperator==をFooだけでなくstd::stringでも比較できるようにしていました。
オーバーロードしないようにすればコンパイルできましたが、引数からoperator==を選択してくれないのでしょうか?
bind<・・・>に型を指定してやれば解決するかと思いましたが私にはむりでした。
今はとりあえずforループを回しております。

963 名前:デフォルトの名無しさん :04/11/26 21:21:48
>>961
ええと、しょうしょう混乱しておりますが。

>それだとshared_ptr<Foo>のoperator==を呼ぼうとしますよ.
というのは>>959さん宛てですかね?
ちがったりして。

ndirect_iteratorは知りませんでした。調べてみます。


964 名前:デフォルトの名無しさん :04/11/26 21:22:10
>962
オーバーロードされた関数へのポインタを取る場合,
ポインタを取った瞬間にどのオーバーロードへのポインタなのかを
指定してやる必要があります.そのまま汎用関数の引数にすることは出来ません.
典型的にはキャストを使うか

static_cast<bool (Foo::*)(Foo const &) const>(&Foo::operator==)

一旦メンバポインタ変数に代入してから使います.

bool (Foo::*pmf)(Foo const &) const = &Foo::operator==

上のシグネチャはただの例なので実際のoperator==のシグネチャに読み替えて下さい.
・・・っていうか,lambdaが一番楽だと思いますよ.

vector<shared_ptr<foo> >::iterator i
= find_if(hoge.begin(), hoge.end(), *_1 == foo);

965 名前:デフォルトの名無しさん :04/11/26 21:30:01
>963
おっと,ごめんなさい.961はboost::lambda::bindの話です.忘れてください.

#shared_ptrに対する挙動がboost::bindとboost::lambda::bindで違う・・・.

966 名前:デフォルトの名無しさん :04/11/26 21:35:12
C++関連のスレが乱立して
閑散としているスレが増えて来ましたので
再編を提案します
http://pc5.2ch.net/test/read.cgi/tech/1101384692/

現状でC++関連は
【C++】template 統合スレ
【C++】STL(Standard Template Library)相談室
BOOSTを語れゴラァ
C++相談室 part37
とありますがこれらは
標準C++相談室【STL含む】
C++テンプレート相談室【Boost/Loki】
の2本に統合でいいように思います

どうでしょうか? 異論がなければ
ここの次スレの名前は標準C++相談室【STL含む】
でいきましょう


967 名前:デフォルトの名無しさん :04/11/26 21:37:45
>>966
STLとかBoostとか関係なく、
ベストな方法を知りたい、みたいな質問をしたい時はどこ?

968 名前:デフォルトの名無しさん :04/11/26 21:39:44
>>964
ありごとうございます。
boost以前の問題でしたね。もっと勉強します。
lambdaはうちのコンパイラが使うな(えない)というもので。。。

969 名前:デフォルトの名無しさん :04/11/26 21:41:49
>>967
そういのはここ(と後継のスレ)でいいのではないでしょうか?
話長くなりそうだったら専門スレに誘導してそこで続けていただくといいと思います


970 名前:デフォルトの名無しさん :04/11/26 21:43:24
>>966
名前は短い方がいい
余計なものくっつけるな

971 名前:デフォルトの名無しさん :04/11/26 21:43:46
>>967
ここで聞くと解決するまえにスレ終りそうだから、
新スレ立ててそこで質問しちくり。

972 名前:デフォルトの名無しさん :04/11/26 21:44:27
>>970
くっつけないと重複スレが立つんだよ。

973 名前:デフォルトの名無しさん :04/11/26 21:45:33
エキスパートが回答してくれれば
どこに質問したっていいって気分。

974 名前:デフォルトの名無しさん :04/11/26 21:46:14
>968
>lambdaはうちのコンパイラが使うな(えない)というもので。。。
相手の環境を考慮してなかったです.本当に申し訳ない.

975 名前:デフォルトの名無しさん :04/11/26 21:47:17
>>966
ISO/IEC14882で定義される範囲は「C++」でしかねえよな
STLだのtemplateだのと断片だけのスレは重複もいいとこ

つーと、残れるのはboostくらいか

976 名前:デフォルトの名無しさん :04/11/26 21:57:43
次スレ


C++相談室 part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/l50




977 名前:デフォルトの名無しさん :04/11/26 21:57:51
あ"ー


978 名前:v(^・^)v :04/11/26 22:18:09
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

979 名前:v(^・^)v :04/11/26 22:18:27
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?


980 名前:デフォルトの名無しさん :04/11/26 22:19:16
>>978
#include "stdafx.h"
みたいにプリコンパイル済みヘッダーをインクルードするか、
ファイルの設定でプリコンパイル済みヘッダーを使わないように設定する。

981 名前:デフォルトの名無しさん :04/11/26 22:25:45
こっちにテンプレ貼ってどうする

982 名前:デフォルトの名無しさん :04/11/26 22:43:16
ここは人工無能のいるスレでつか?

983 名前:デフォルトの名無しさん :04/11/26 22:46:12
人工無能ってなに?

984 名前:デフォルトの名無しさん :04/11/26 22:46:27
スレってなに?

985 名前:デフォルトの名無しさん :04/11/26 22:46:42
でつかってなに?

986 名前:デフォルトの名無しさん :04/11/26 22:47:08
ここってなに?

987 名前:デフォルトの名無しさん :04/11/26 22:48:08
Ruby!!!!!!!!!!!!!!!!!!!!!!

988 名前:デフォルトの名無しさん :04/11/26 22:57:38
Rubyつかうと一気に○○○が10倍に?!

↑○○○を埋めて。

989 名前:デフォルトの名無しさん :04/11/26 22:58:14
リスク

990 名前:デフォルトの名無しさん :04/11/26 22:59:06
さて、お取り込み中の所大変申し訳ありませんが、カウントダウンの時間です。

991 名前:デフォルトの名無しさん :04/11/26 22:59:28
9

992 名前:デフォルトの名無しさん :04/11/26 23:00:35
除夜の鐘みたいだ。

993 名前:デフォルトの名無しさん :04/11/26 23:00:45
>>988
ヘタレ

994 名前:デフォルトの名無しさん :04/11/26 23:03:05
>>988
そくど


995 名前:デフォルトの名無しさん :04/11/26 23:04:03
>>988
おなか

996 名前:デフォルトの名無しさん :04/11/26 23:04:23
>>988
こしけ

997 名前:デフォルトの名無しさん :04/11/26 23:05:20
>>988
肥満度

998 名前:10000000!!!!!!!!!! :04/11/26 23:05:27
10000000!!!!!!!!!!

999 名前:デフォルトの名無しさん :04/11/26 23:05:37
1000(σ´Д`)σゲッツ!!

1000 名前:一億 :04/11/26 23:05:50
一億


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.