環境: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で質問しましょう!
似たような質問が見つかりました
- 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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
既定のコンストラクタがない?
C言語・C++・C#
-
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
-
4
#defineの定数を文字列として読み込む
C言語・C++・C#
-
5
C言語にて構造体のメンバがNULLであるかを判定するサンプルを作成して
C言語・C++・C#
-
6
1 つのヘッダファイルに複数のクラスって?
C言語・C++・C#
-
7
C++のfor文について
C言語・C++・C#
-
8
1 つ以上の複数回定義されているシンボルが見つかりました
C言語・C++・C#
-
9
C++でboolにintの値を代入することについて
C言語・C++・C#
-
10
C言語での引数の省略方法
C言語・C++・C#
-
11
関数から配列を返すには?
C言語・C++・C#
-
12
'const char *' 型は 'char *' 型に変換できない ??
C言語・C++・C#
-
13
deleteで開放するとエラーになる原因がわからない
C言語・C++・C#
-
14
戻り値を返す関数の前に(void)を付ける
C言語・C++・C#
-
15
0除算して、落ちるプログラムと落ちないプログラム
C言語・C++・C#
-
16
string型のフォーマット書式指定の文字列
C言語・C++・C#
-
17
クラスのアドレスを引数として渡したい
C言語・C++・C#
-
18
【C++】関数ポインタの使い方
C言語・C++・C#
-
19
テキストカーソル位置の取得
C言語・C++・C#
-
20
初級者の質問――time_tについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既定のコンストラクタがありま...
-
【gcc・cygwin】multiple defin...
-
gcc: incompatible pointer type
-
C++にてtemplateで受け取った任...
-
静的でないメンバ関数の呼び出...
-
CTabCtrl:TABインデックス単位...
-
C# KeyDownイベントでショート...
-
TimerProc コールバック関数を...
-
PICのプログラミングについて
-
C言語 プロトタイプ宣言
-
typedef unsigned int UINT;が...
-
自作DirectShow Filterのinter...
-
多重定義が起きている?--lnk20...
-
LEDで電光掲示板に「A B C D E...
-
C#でテンキーの操作は可能でし...
-
->*演算子のオーバーロードにつ...
-
privateなnamespaceメンバ
-
列挙体(enum)と関数教えてく...
-
戻り値を返す関数の前に(void)...
-
static constメンバ変数(配列)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既定のコンストラクタがありま...
-
【gcc・cygwin】multiple defin...
-
Notepad++の関数リスト表示の変...
-
戻り値を返す関数の前に(void)...
-
ArduinoでMouse関数を使用して...
-
C++にてtemplateで受け取った任...
-
int main()、void main()、void...
-
多重定義が起きている?--lnk20...
-
C# KeyDownイベントでショート...
-
静的でないメンバ関数の呼び出...
-
VC++でGetKeyboardStateがうま...
-
C# Controls.Addで動的に配置し...
-
gcc: incompatible pointer type
-
void*型の配列について
-
const_castのつかいどころを教...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
(void)0 はどんな意味ですか
-
TimerProc コールバック関数を...
-
H8マイコンのシリアル通信につ...
-
DLLの関数呼び出しで引数がある...
おすすめ情報