C ++のプロパティ(名前によるアクセスあり、セッターなし)

コマンドラインパラメータをプログラムに転送するために、私の仕事で実際に使用された別のバージョンのプロパティ。 使用されるタイプには柔軟性がありませんが、このタスクには非常に便利であることがわかりました。



免責事項:このパターンを、リソースのないサイクルや環境に適用しようとしないでください。1つのパラメーターの読み取り/書き込みサイクルには、多くのパラメーターが含まれる2〜5マイクロ秒かかります。



C ++プロパティをC ++で追求





#include <string> #include <map> #include <iostream> using namespace std; class PropertyVariant { enum Type{ Null, Integer, String }; int ivalue; string svalue; Type type; public: PropertyVariant() { type = Null; } PropertyVariant(const PropertyVariant &clone) { type = clone.type; ivalue = clone.ivalue; svalue = clone.svalue; } PropertyVariant( int val ) { type = Integer; ivalue = val; } PropertyVariant( const string &val ) { type = String; svalue = val; } PropertyVariant( const char *val ) { type = String; svalue = val; } operator int() { if( type != Integer ) throw runtime_error( "wrong type" ); return ivalue; } operator string() { if( type != String ) throw runtime_error( "wrong type" ); return svalue; } }; int main() { map<string,PropertyVariant> variant_props; variant_props["Integer"] = 100; variant_props["String"] = "crazy_dev"; string s = variant_props["String"]; int i = variant_props["Integer"]; return 0; }
      
      






All Articles