C++相談室 part63

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/09/20(土) 13:55:21
>>950
おっしゃる意味がわかりません。
全角文字など使っていません。
953デフォルトの名無しさん:2008/09/20(土) 13:57:49
>>952
投稿した奴には空白混ざってるよ
まぁ除いてもコンパイルは通らないけど
954デフォルトの名無しさん:2008/09/20(土) 14:05:32
template <class T>
class C {
...
template<class U>
friend std::ostream& operator<<(std::ostream&, const C<U>&);
};

template <class T>
std::ostream& operator<<(std::ostream& os, const C<T>& c) {
...
}

もしくは

template<class T>
class C {
...
friend std::ostream& operator<<(std::ostream&, const C<T>&) {
...
}
};

若干意味が違うけど。
955デフォルトの名無しさん:2008/09/20(土) 14:06:23
>>953
そうですそのコンパイルが通らない理由を知りたいのです。
全角文字は投稿の際にもしかして混ざってしまったのかもしれませんが
ソースには入っておりません
956デフォルトの名無しさん:2008/09/20(土) 14:10:06
>>954
ありがとうございます。無事コンパイルが通りました。
957デフォルトの名無しさん:2008/09/20(土) 14:15:03
全角空白が元から入っていたのか、投稿時に紛れ込んだのかは
他の人には分からないよね。
そして、全角空白によってもコンパイルが通らないわけで。
だから、それに気が付いたすごく親切な人が親切に教えてくれたわけで。
一応、俺だったら礼はするな。
958デフォルトの名無しさん:2008/09/20(土) 14:18:29
はいはい、お前さんは礼儀正しいですね
959デフォルトの名無しさん:2008/09/20(土) 14:20:12
>>957
いちゃもん付けるな
それ位誰だってわかってるさ
エディタに全角空白は□が表示されるし

しかも質問者は<<が見つからないというエラーが
出ると言っているわけで、全角空白のエラーが
出ると言っているわけではないし
960デフォルトの名無しさん:2008/09/20(土) 14:21:20
うるせーよ
961デフォルトの名無しさん:2008/09/20(土) 14:22:05
頭悪そうな奴が一、二名いるな
962デフォルトの名無しさん:2008/09/20(土) 14:30:35
>>960
敗走ワロタ
963デフォルトの名無しさん:2008/09/20(土) 14:58:33
>>954
BCC6.1.0ではコンパイラエラーになるな
これはBCCのバグだろう
964デフォルトの名無しさん:2008/09/23(火) 00:38:22
template クラスの前方宣言はどのように記述すればいいのでしょう?
たとえば、

template< class T > hoge{ };

を前方宣言する場合です。
965デフォルトの名無しさん:2008/09/23(火) 00:42:20
template< class T > hoge;
966デフォルトの名無しさん:2008/09/23(火) 00:43:31
両方 hoge の前の class を忘れてるけどね
967デフォルトの名無しさん:2008/09/23(火) 00:59:18
できますた! どもです。
968デフォルトの名無しさん:2008/09/23(火) 12:57:42
templare で値を指定出来る?
例えば、こんな感じ。

template<class TValue>
class CHoge
{
int m_value;
public:
CHoge() : m_value(TValue) {}
};
969デフォルトの名無しさん:2008/09/23(火) 13:05:25
template<int TValue>
970デフォルトの名無しさん:2008/09/23(火) 13:14:39
classってのは、そういう意味だったのね。ありがとう。
971デフォルトの名無しさん:2008/09/23(火) 13:16:05
classよりもtypenameの方が意味がはっきりする
でもclassの方がタイプ量が少ないせいか皆こちらを使うね
972デフォルトの名無しさん:2008/09/23(火) 13:23:12
つかtypenameの導入の方が後だからじゃね
973デフォルトの名無しさん:2008/09/23(火) 16:11:32
typenameは存在自体が恥ずかしい予約語だから必要ないときはあんまり使いたくない
974デフォルトの名無しさん:2008/09/23(火) 16:31:44
どう恥ずかしいんだ?
975デフォルトの名無しさん:2008/09/23(火) 18:02:03
BYTEからcharへ変換する方法ってどうやるんでしょうか?

BYTE *dst;
ConvertINetString( &mode, 51932, 932, buf1, &srcLen, dst, &dstLen);

上のdstをchar型に変換したいと思っています。
976デフォルトの名無しさん:2008/09/23(火) 18:09:59
char *converted = reinterpret_cast<char*>(dst);
977デフォルトの名無しさん:2008/09/23(火) 18:35:35
>>975 BYTE の(意味的な)定義がわからないと、なんとも。
978デフォルトの名無しさん:2008/09/23(火) 19:09:04
979デフォルトの名無しさん:2008/09/23(火) 19:56:07
>>974
C++は自力で型名を型名と判別できない言語だから必要な予約語であって
一人でパースすらできない欠陥言語であることの証明だから
980デフォルトの名無しさん:2008/09/23(火) 20:00:24
そんな理由でなんでclassならいいんだよw
981デフォルトの名無しさん:2008/09/23(火) 20:50:48
typename は解析を簡単にするために必要なんじゃないの?
982デフォルトの名無しさん:2008/09/23(火) 21:08:06
typenameの読み方(訓読み)が恥ずかしいんじゃなかろうか
983デフォルトの名無しさん:2008/09/23(火) 22:04:29
読み方って、ちぺなめ以外に何かあるのか?
984デフォルトの名無しさん:2008/09/23(火) 22:05:42
なんてことをいうんだ
今後typenameを見るたびに恥ずかしい読み方を思い出すようになってしまったらどうしてくれるw
985デフォルトの名無しさん:2008/09/23(火) 22:18:51
>>984
にやにやしてあげる
986デフォルトの名無しさん:2008/09/23(火) 23:19:12
>>253
ちょwwww
987デフォルトの名無しさん:2008/09/24(水) 01:38:09
何処への誤爆かさっさと自白するなら、処遇の善処を考えないでもないぞ?
988デフォルトの名無しさん:2008/09/24(水) 01:58:04
普通に浦島レスに見える
989デフォルトの名無しさん:2008/09/24(水) 01:59:05
な、(ry
990デフォルトの名無しさん:2008/09/24(水) 02:38:37
まあ>>253は、書いてはいけないコードだからな
991デフォルトの名無しさん:2008/09/24(水) 12:44:49
CloseHandleでエラーが出たらどうしてる?
ログに残すくらいしか対策ないよな。
992デフォルトの名無しさん:2008/09/24(水) 12:51:11
例外投げるとか
どっちにしろ対処方はないんじゃね?
993デフォルトの名無しさん:2008/09/24(水) 16:01:38
精々OutputDebugStringする程度か、無視だな。
994デフォルトの名無しさん:2008/09/24(水) 16:37:07
enum{
ONE=1,
TWO=2,
THREE=4,
FOUR=8
};

ってフラグ定数を宣言したい時いちいち=で設定しないでもenumと同じ使い心地の定数の宣言できないだろうか
勝手に2倍2倍にしてくれるenumみたいな
995デフォルトの名無しさん:2008/09/24(水) 16:39:11
enum{
dumm0,
ONE,
TWO,
dumm11,
THREE,
dumm101,
dumm110,
dumm111,
FOUR
};
996デフォルトの名無しさん:2008/09/24(水) 16:39:36
プリプロセッサメタプログラミングが必要だぜ。
997デフォルトの名無しさん:2008/09/24(水) 16:58:07 BE:1113850548-2BP(40)
むしろ参照するときにマクロなり何なりで 1 << n する。
998デフォルトの名無しさん:2008/09/24(水) 17:53:39
>>995お前の発想にはいつも勃起させられているよ。まぁ、こっちこいよ。
999デフォルトの名無しさん:2008/09/24(水) 19:13:16
 
1000デフォルトの名無しさん:2008/09/24(水) 19:14:05
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。