C++相談室 part82
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/06/02(水) 20:20:13ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part81
http://pc12.2ch.net/test/read.cgi/tech/1273407971/
0951デフォルトの名無しさん
2010/08/02(月) 02:14:440952デフォルトの名無しさん
2010/08/02(月) 02:56:16そもそもコンパイラが対応していなければ使いようがないが。
多重継承に関してはデータメンバを持たないインタフェースクラス以外の
多重継承は禁止でいいのでは?
0953デフォルトの名無しさん
2010/08/02(月) 08:20:310954デフォルトの名無しさん
2010/08/02(月) 11:23:590955デフォルトの名無しさん
2010/08/02(月) 11:43:340956732
2010/08/02(月) 13:59:570957デフォルトの名無しさん
2010/08/02(月) 14:35:23template<class T, class U> U func(T x);
のような関数を作りたいのですが、このままでは
Foo x;
Bar y = func<Foo, Bar>(x);
のような書き方をしなければなりません。
templateパラメータUを引数から推測させ
Foo x;
Bar y = func<Bar>(x);
とするためにはどう記述すれば良いのでしょうか。
0958デフォルトの名無しさん
2010/08/02(月) 14:43:16おお、そんなキーワードが追加される予定なの?
その中ではnoexceptなメソッドのみしか呼び出せないとかできるとよりよいな。constメソッドみたいに。
0959デフォルトの名無しさん
2010/08/02(月) 14:49:57template<class U, class T> U func(T x);
0960デフォルトの名無しさん
2010/08/02(月) 14:53:520961デフォルトの名無しさん
2010/08/02(月) 15:30:24ありがとうございます!
0962デフォルトの名無しさん
2010/08/02(月) 19:18:290963デフォルトの名無しさん
2010/08/02(月) 20:47:050964デフォルトの名無しさん
2010/08/02(月) 21:18:44class U, class T の順番変わっただけだと思うのですが
これでよくなるのはどういうルールがあるのでしょうか
0965デフォルトの名無しさん
2010/08/02(月) 21:35:26理解するまで大して時間がかかる問題でもないし
0966デフォルトの名無しさん
2010/08/02(月) 21:36:56相談室の意味ねぇ!
0967デフォルトの名無しさん
2010/08/02(月) 21:38:110968デフォルトの名無しさん
2010/08/02(月) 21:38:470969デフォルトの名無しさん
2010/08/02(月) 21:40:59調べればすぐ分かる問題は自分で調べろよ。
その習慣をまず身につけてからの相談室だ。
こんなこと言ってる時間あればもう理解できると思うが。
0970デフォルトの名無しさん
2010/08/02(月) 21:42:130971デフォルトの名無しさん
2010/08/02(月) 21:42:550972デフォルトの名無しさん
2010/08/02(月) 21:43:420973デフォルトの名無しさん
2010/08/02(月) 21:57:460974デフォルトの名無しさん
2010/08/02(月) 22:13:13何も指定しない方のデフォルトをconstにした方がいいレベルだぞ
0975デフォルトの名無しさん
2010/08/02(月) 22:15:400976デフォルトの名無しさん
2010/08/02(月) 22:19:51struct をデフォルト public にせにゃならんようなのと同じしがらみだな
0977デフォルトの名無しさん
2010/08/02(月) 22:31:350978デフォルトの名無しさん
2010/08/02(月) 23:05:13int array[]
にアクセスするのに以下の関数を用意しましたが、コンパイルが通りません。
const int& Hoge::at( const int pos ) const{
return array[pos];
}
int& Hoge::at( const int pos ){
retrun static_cast<int&>( static_cast<const Hoge*>(this)->at(pos) );
}
どこが間違っているのしょうか?
0979デフォルトの名無しさん
2010/08/02(月) 23:08:21retrun array[pos];
}
でいいだろ。
0980978
2010/08/02(月) 23:48:48>>978はあくまでも例です。
実際は const int& Hoge::at( const int pos ) const
で色々処理をしてから return をしています。
その処理部分は int& Hoge::at( const int pos ) と共通ですので
非cont関数からconst関数を呼ぶようにしたいと思いました。
0981デフォルトの名無しさん
2010/08/02(月) 23:56:02static_cast -> const_cast
0982デフォルトの名無しさん
2010/08/03(火) 00:12:19const_cast -> const_const
0983デフォルトの名無しさん
2010/08/03(火) 07:47:55そういうチェック機能は規格には入ってないよ。できて警告どまり。
これも昔の const と似た状態なんだけどね。
0984デフォルトの名無しさん
2010/08/03(火) 21:09:260985デフォルトの名無しさん
2010/08/03(火) 21:56:580986デフォルトの名無しさん
2010/08/04(水) 00:35:514>C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlconv.h(768): warning C4995: 'wcscat': 名前が避けられた #pragma として記述されています。
4>C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\cstringt.h(295): warning C4995: 'vsprintf': 名前が避けられた #pragma として記述されています。
4>C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\cstringt.h(667): warning C4995: 'vswprintf': 名前が避けられた #pragma として記述されています。
こんな警告が出ちゃうんですが修正する方法ありますか?
0987デフォルトの名無しさん
2010/08/04(水) 01:32:18とりあえず、
1.
wcscpy_s wcscat_s vsprintf_s vswprintf_s を使う
2.
可能な限り早く、
(たとえば、stdafx.hの先頭で)
#define _CRT_SECURE_NO_WARNINGS
する
など
0988デフォルトの名無しさん
2010/08/04(水) 01:36:343.
可能な限り早く、
(たとえば、stdafx.hの先頭で)
#pragma warning( disable : 4995 )
する
など
だが、いずれにせよスレ違いだろう
0989デフォルトの名無しさん
2010/08/04(水) 01:47:47ありがとうございます.
0990デフォルトの名無しさん
2010/08/04(水) 04:39:580991デフォルトの名無しさん
2010/08/04(水) 09:41:400992デフォルトの名無しさん
2010/08/04(水) 09:49:310993デフォルトの名無しさん
2010/08/04(水) 09:52:27その前に埋めるんじゃねえ
0994デフォルトの名無しさん
2010/08/04(水) 09:53:030995デフォルトの名無しさん
2010/08/04(水) 10:06:190996デフォルトの名無しさん
2010/08/04(水) 11:21:18. // `ヽ、
. く. / ,. -―‐- 、', >
. |/ヘ∧/\/レヘ/ __|__ゝ | _|_ |_ ―ー-
. | | | O O || | | | | -ー―-、
. | | |、 r.┐ || / ̄:| ̄\ | __| __|_ )
. | | | `ー┴┴ '| | (_ノ ヽ l (__ノ ̄ヽ (_ノ ヽ /
. |∧∨ ヽ /.ヘ| |ヽ _
/ | | ∨ .| | i ___ ぃ l__ ぃ l /
/ 〈 〉 .〈 〉.|、 / ノ | \ | | /
. / / |`′ Y | `~` ''ー- 、 ( | / |/
. / ./ .| l | ./ \ ノ ノ o
/ ./ ̄`ー-−-、. | .| /
.( 二 ) ̄`ー、__ `l .|、 /
/〈, , ,ノ `ー-| l、 `ヽ /
. ( 二 ) 〉 //
. 〈 , , ,}´ //
/ //
0997デフォルトの名無しさん
2010/08/04(水) 11:36:460998デフォルトの名無しさん
2010/08/04(水) 11:40:050999デフォルトの名無しさん
2010/08/04(水) 12:19:101000デフォルトの名無しさん
2010/08/04(水) 12:21:1810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。