5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C++相談室 part58

1 :v(^・^)v:2007/09/26(水) 03:41:13
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

テンプレその他 >>2-15 付近参照

前スレ(実質 part57)
C++相談室 part56
http://pc11.2ch.net/test/read.cgi/tech/1185377587/

872 :デフォルトの名無しさん:2007/11/06(火) 23:19:44
VC++EEなのですがstaticでconstなiとかjがないことされちゃいます>< (でもoperator<<には渡せる・・・

#include <string>
#include <iostream>

struct hoge {
 template<class T>
 hoge(const T) {}
};

struct hage {
};

static const int i = 1;

struct poge {
 static const int j = 2;

 static const hoge h1(i); // error C2061: 構文エラー : 識別子 'i'
 static const hoge h2(j); // error C2061: 構文エラー : 識別子 'j'
 static const hoge h3(hage());
};

int main(int ac, char** av) {
 std::cout << i << std::endl;
 std::cout << poge::j << std::endl;
 poge pooo;
 return 0;
}


873 :デフォルトの名無しさん:2007/11/06(火) 23:32:08
> static const hoge h1(i); // error C2061: 構文エラー : 識別子 'i' 
> static const hoge h2(j); // error C2061: 構文エラー : 識別子 'j' 
> static const hoge h3(hage()); 

これはいったいどういう動作を期待しているんだ? ちょっと説明してもらえまいか

874 :872:2007/11/06(火) 23:41:57
hogeのコンストラクタが引数の型をintとかhageとかで呼び出されることを期待しています

875 :デフォルトの名無しさん:2007/11/06(火) 23:44:23
>>872
> static const hoge h1(i); // error C2061: 構文エラー : 識別子 'i'
> static const hoge h2(j); // error C2061: 構文エラー : 識別子 'j'

これは多分 hoge 型の変数の宣言、定義を意図しているんだろうけど
コンパイラからは戻り値の型が const hoge で static なメンバ関数の
宣言に見えている

エラーメッセージにはそんなこと書いてなかった?

876 :872:2007/11/06(火) 23:53:17
あー なるほど
static const hoge h1(int(i));
static const hoge h1(int(j));
にしたらコンパイルできました
エラーメッセージはコメントのだけでした
ありがとうございます

272 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)