トップページ > プログラム > 2014年10月20日 > YIaZ+UJI

書き込み順位&時間帯一覧

5 位/186 ID中時間01234567891011121314151617181920212223Total
書き込み数2000000000000000100000216



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part114
Win32API質問箱 Build118
【初心者歓迎】C/C++室 Ver.93【環境依存OK】

書き込みレス一覧

C++相談室 part114
364 :デフォルトの名無しさん[sage]:2014/10/20(月) 00:04:16.14 ID:YIaZ+UJI
テンプレートで質問なのですが、
#include <vector>
#include <string>
#include <iostream>
using namespace std;
void func_vect(const vector<string> &vstr){
   // do something
}
void func_int(const int i){
   // do something
}

template<typename T> void func(T arg){
   if (argがvector<string>なら)
      func_vect(arg);
   else if (argがintなら)
      func_int(arg);
}

void main(){
   vector<string> v = {"123","456","789"};
   func(v);

   int i = 123;
   func(i);
}
こんな処理はできますか?
実際に試したら、vector<string> か int かに限定しないと、ビルド出来ませんでした。
C++相談室 part114
368 :デフォルトの名無しさん[sage]:2014/10/20(月) 00:34:43.39 ID:YIaZ+UJI
みなさんレスありがとうございました。
>>365
実際はTの種類が10個くらいあり、 template関数func()もかなりの行数なので、
できればtemplate関数一個でスッキリ書きたいのですが。

>>366
特殊化というのを調べてみます。

>>367
>テンプレートじゃなくて
boost::anyあたりに入れないとな
テンプレートでは、実現不可能でしょうか?
Win32API質問箱 Build118
648 :デフォルトの名無しさん[sage]:2014/10/20(月) 16:15:30.31 ID:YIaZ+UJI
>>647
情報ありがとうございました。大変参考になります。
早速試してみましたら、動いたのですが、
C++初心者の私には、
SetMultiSzとQueryMultiSzの引数の与え方が分りませんでした。
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
116 :デフォルトの名無しさん[sage]:2014/10/20(月) 22:23:16.91 ID:YIaZ+UJI
たとえばMyClass.hが物凄く長くなったので分割したい場合、
--- MyClass.h ---
class MyClass{
public:
  int a;
  // ...その他の定義がたくさん
private:
  int b;
  // ...その他の定義がたくさん
};
-----------------
を、
--- MyClass.h ---
class MyClass{
#include "public.h"
#include "private.h
};
-- public.h --
public:
  int a;
  // ...
-- private.h --
private:
  int b;
  // ...
のように、分割したのですが、おかしいですか?
もっとお勧めの方法があれば教えてください。
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
118 :デフォルトの名無しさん[sage]:2014/10/20(月) 22:35:22.05 ID:YIaZ+UJI
>>117
レスありがとうございます。
MyClassの設計は別問題として、最初に示した例のように分割したファイルを
#include 文で読み込む方法は、一般的なやり方かどうかを教えてください。
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
120 :デフォルトの名無しさん[sage]:2014/10/20(月) 23:16:44.85 ID:YIaZ+UJI
>>119
ググっても良い例が見つからないのですが、どこかお勧めのサイト
ありませんか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。