環境:VisualStudio2005, WinXP
以下のようなことは可能でしょうか?
・ある型の変数をそれが何型であるかを判定→例えばintとかcharとかchar *とか
概念としてはこんな感じです。
template<class Type>
void func( Type a )
{
// 型を判定
switch( GetTypeChack(a) ){
case BOOL:
case INT:
case CHAR:
case FLOAT:
・
・
}
}
No.2
- 回答日時:
typeid() って標準だっけ?
No.3ベストアンサー
- 回答日時:
if (typeid(Type) == typeid(int))
...
のようにすれば実現はできますが、このような型スイッチは最悪の設計です。
ある程度共通部分があるからテンプレートにしているのであれば、型によって処理を変えるべきところだけを別の関数にするなりすれば済むことです。
template <class Type>
void func(Type a)
{
...
sub(a);
...
}
void sub(int a);
void sub(char a);
...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C++のfor文について
C言語・C++・C#
-
既定のコンストラクタがない?
C言語・C++・C#
-
C言語にて構造体のメンバがNULLであるかを判定するサンプルを作成して
C言語・C++・C#
-
-
4
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
5
【C++】関数ポインタの使い方
C言語・C++・C#
-
6
1 つのヘッダファイルに複数のクラスって?
C言語・C++・C#
-
7
#defineの定数を文字列として読み込む
C言語・C++・C#
-
8
戻り値を返す関数の前に(void)を付ける
C言語・C++・C#
-
9
1 つ以上の複数回定義されているシンボルが見つかりました
C言語・C++・C#
-
10
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
11
C++でboolにintの値を代入することについて
C言語・C++・C#
-
12
enumの値から定義名を文字列化したい
C言語・C++・C#
-
13
string型のフォーマット書式指定の文字列
C言語・C++・C#
-
14
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
15
'const char *' 型は 'char *' 型に変換できない ??
C言語・C++・C#
-
16
C++における継続行
その他(プログラミング・Web制作)
-
17
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
18
参照型で受け取った引数をポインター型に渡す方法
C言語・C++・C#
-
19
C言語 配列の長さの上限
C言語・C++・C#
-
20
コンストラクタ内でのthisポインタ
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
【gcc・cygwin】multiple defin...
-
int main()、void main()、void...
-
C++にてtemplateで受け取った任...
-
戻り値を返す関数の前に(void)...
-
ArduinoでMouse関数を使用して...
-
C++別のオブジェクトからメンバ...
-
合格か否かを表示するプログラ...
-
C#でラジオボタンを設定に記録...
-
C# KeyDownイベントでショート...
-
void*型の配列について
-
C# Controls.Addで動的に配置し...
-
多重定義が起きている?--lnk20...
-
c言語 引数のvoidについて
-
構造体を宣言と共に初期化する方法
-
CTabCtrl:TABインデックス単位...
-
コールバックって・・・
-
静的でないメンバ関数の呼び出...
-
クラス間でのクラスの共有?
-
マイナスからプラスへ転じた時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
int main()、void main()、void...
-
戻り値を返す関数の前に(void)...
-
既定のコンストラクタがありま...
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
静的でないメンバ関数の呼び出...
-
C# Controls.Addで動的に配置し...
-
const_castのつかいどころを教...
-
(void)0 はどんな意味ですか
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
C#でラジオボタンを設定に記録...
-
VC++でGetKeyboardStateがうま...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
void*型の配列について
-
GDI+の使用方法について
-
DirectInput でのエラー
おすすめ情報