ソケットストリームから値を読み取って解析するために使用されるソケットデータ型クラスがあります(ファイルにも使用される場合があります)。
私のクラスを次のようにしますmc_double。
class mc_double {
private:
double value;
public:
bool read(socket);
write(double);
}
実際のクラスはもっと複雑ですが、これが原則です。floatここで、ストリームから解析する必要があります。Float は double に似ているため、既に実装されていますint。このクラス定義を all とマージして、double何らかの方法でテンプレート化することはできませんか?intfloat
これが私が意味することです:
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_intmc_floatmc_double