
環境: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言語でのconstを返す関数
C言語・C++・C#
-
既定のコンストラクタがない?
C言語・C++・C#
-
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
-
4
適切な変換関数が存在しない???
C言語・C++・C#
-
5
構造体の宣言でエラーが出ます。
C言語・C++・C#
-
6
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
7
C言語の配列をC++のvectorに高速に変換したい
C言語・C++・C#
-
8
C++のfor文について
C言語・C++・C#
-
9
CStringをwchar_tに変換したい
C言語・C++・C#
-
10
gccのインクルードパスの確認
UNIX・Linux
-
11
std::wstringのメモリリークについて教えてださい
C言語・C++・C#
-
12
ファイル書込みで一行もしくは部分的に上書きする
PHP
-
13
VC++でUTF-8のファイルを出力したい
C言語・C++・C#
-
14
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
15
c言語
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
Notepad++の関数リスト表示の変...
-
【gcc・cygwin】multiple defin...
-
別ソースファイル、同クラス名...
-
C++にてtemplateで受け取った任...
-
LEDで電光掲示板に「A B C D E...
-
Arduinoでコンパイルエラーにつ...
-
const_castのつかいどころを教...
-
多重定義が起きている?--lnk20...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
shared_ptrからpimplのデストラ...
-
unityの教科書のゲームを作って...
-
void main()って誰が最初?:AN...
-
組み込みマイコン
-
既定のコンストラクタがありま...
-
二重定義の回避法
-
メッセージマップ(ON_CONTROL_...
-
LNK2019:未解決の外部シンボル ...
-
解凍ソフト(C++builderで作成...
-
int main()、void main()、void...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
多重定義が起きている?--lnk20...
-
const_castのつかいどころを教...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
戻り値を返す関数の前に(void)...
-
静的でないメンバ関数の呼び出...
-
int main()、void main()、void...
-
C# KeyDownイベントでショート...
-
C# Controls.Addで動的に配置し...
-
(void)0 はどんな意味ですか
-
gcc: incompatible pointer type
-
_beginthreadにて発生するコン...
-
C#でラジオボタンを設定に記録...
-
C#でテンキーの操作は可能でし...
-
C++別のオブジェクトからメンバ...
-
CTabCtrl:TABインデックス単位...
-
見た目は同じソースなのにエラ...
-
pictureboxの画像を削除するには?
-
【VC++6.0】イベントハンドラ関...
おすすめ情報