<<
and>>
演算子を使用して、外部データベースにロードおよび保存したいと考えています。それが機能するために、外部データベースは何を実装する必要がありますか?
考えや経験?SQL を使用して sqlite3 データベースとやり取りしています。
たとえば、次のように言いたいです。
MyClass c;
c >> databaseInstance;
c << databaseInstance;
databaseInstance
必要な方法でデータベースに書き込む機能を提供し、ストリームのようなインターフェイスを提供する何らかのタイプである必要がありoperator>>
ますoperator<<
。これらの関数は、次のように定義されます。
database_type& operator<<(database_type& databaseInstance, MyClass& c)
{
// Write to database here
return databaseInstance;
}
database_type& operator>>(database_type& databaseInstance, MyClass& c)
{
// Read from database here
return databaseInstance;
}
これは、演算子のオーバーロードを利用します。それ以上言うことはありません。データベースはストリームとあまり似ていないため、データベースを扱うのはかなり奇妙なことです。
C++ 標準ライブラリとの一貫性を保つために、演算子の使用法を逆にしたい場合があります。
MyClass c;
databaseInstance << c;
databaseInstance >> c;
MyClass
ただし、最終行がオブジェクトに何を読み込むかは正確にはわかりません。databaseInstance
2 行目は、特定のテーブルに挿入するように構成されている場合にのみ意味があります。