ソケットストリームから値を読み取って解析するために使用されるソケットデータ型クラスがあります(ファイルにも使用される場合があります)。
私のクラスを次のようにしますmc_double
。
class mc_double {
private:
double value;
public:
bool read(socket);
write(double);
}
実際のクラスはもっと複雑ですが、これが原則です。float
ここで、ストリームから解析する必要があります。Float は double に似ているため、既に実装されていますint
。このクラス定義を all とマージして、double
何らかの方法でテンプレート化することはできませんか?int
float
これが私が意味することです:
class mc_<typename = double or int or float> {
private:
typename value;
public:
bool read(socket);
write(typename);
}
一部のメソッドは個別に定義されますが、mc_double::method()
他のメソッドはすべてのタイプで同じになります: mc_typename::general_method()
. また、コードを少し変更するだけでよい場合もあります。
typename mc_typename::return_value() {
return val;
}
またはコンストラクター:
mc_typename::mc_typename(<int, long, char, double> number) {
val = (typename)number;
}
結果は、 、 、の3 つのクラスになるはずです。
公式の C++ テンプレート ドキュメントを見つけましたが、質問の最後の部分しかわかりませんでした。複数のデータ型を受け入れる関数を作成できます。残りはそれほど簡単ではないようです。mc_int
mc_float
mc_double