
環境:VisualStudio2005, WinXP
以下のようなことは可能でしょうか?
・ある型の変数をそれが何型であるかを判定→例えばintとかcharとかchar *とか
概念としてはこんな感じです。
template<class Type>
void func( Type a )
{
// 型を判定
switch( GetTypeChack(a) ){
case BOOL:
case INT:
case CHAR:
case FLOAT:
・
・
}
}
No.3ベストアンサー
- 回答日時:
if (typeid(Type) == typeid(int))
...
のようにすれば実現はできますが、このような型スイッチは最悪の設計です。
ある程度共通部分があるからテンプレートにしているのであれば、型によって処理を変えるべきところだけを別の関数にするなりすれば済むことです。
template <class Type>
void func(Type a)
{
...
sub(a);
...
}
void sub(int a);
void sub(char a);
...
No.2
- 回答日時:
typeid() って標準だっけ?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
C言語でのconstを返す関数
C言語・C++・C#
-
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
適切な変換関数が存在しない???
C言語・C++・C#
-
-
4
C言語での引数の省略方法
C言語・C++・C#
-
5
構造体の宣言でエラーが出ます。
C言語・C++・C#
-
6
C++のfor文について
C言語・C++・C#
-
7
gccのインクルードパスの確認
UNIX・Linux
-
8
既定のコンストラクタがない?
C言語・C++・C#
-
9
VC++でUTF-8のファイルを出力したい
C言語・C++・C#
-
10
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
11
c言語
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
C# Controls.Addで動的に配置し...
-
const_castのつかいどころを教...
-
多重定義が起きている?--lnk20...
-
Notepad++の関数リスト表示の変...
-
【gcc・cygwin】multiple defin...
-
[Visual C++ 6.0] コンパイル(...
-
既定のコンストラクタがありま...
-
C++にてtemplateで受け取った任...
-
CTabCtrl:TABインデックス単位...
-
VC++でGetKeyboardStateがうま...
-
pic16f88とosl40562-lrとc言語...
-
C#でテンキーの操作は可能でし...
-
C++別のオブジェクトからメンバ...
-
継承元の関数はオーバーロード...
-
typedef unsigned int UINT;が...
-
C++からCに直したい
-
(void)0 はどんな意味ですか
-
戻り値を返す関数の前に(void)...
-
Delphiの定数とローカル変数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
既定のコンストラクタがありま...
-
C++にてtemplateで受け取った任...
-
多重定義が起きている?--lnk20...
-
【gcc・cygwin】multiple defin...
-
const_castのつかいどころを教...
-
戻り値を返す関数の前に(void)...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
C# Controls.Addで動的に配置し...
-
C#でテンキーの操作は可能でし...
-
int main()、void main()、void...
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
Notepad++の関数リスト表示の変...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
関数ポインタについて
-
void main()って誰が最初?:AN...
-
演算子のオーバーロードでコン...
-
この式の意味
おすすめ情報