libQtCassandraを書きましたが、現在のバージョンはスーパーカラムをサポートしていません。そのサポートを追加しない理由の 1 つは、配列演算子 ([]) を使用してデータにアクセスして書き込む方法をユーザーに提供するためにライブラリで使用されるスキームを壊すことです。
慣れていない場合は、ライブラリを使用して「コンテキスト」(Cassandra クラスターへの接続) を作成し、そのコンテキストから次のように記述できます。
// set value 123 in "column name" of "row key" of "column family":
context["column family"]["row key"]["column name"] = 123;
// retrieve that value:
int value = context["column family"]["row key"]["column name"];
とても簡単です。ただし、スーパー列を導入すると、スーパー列があるかどうかに応じて、もう 1 つの配列アクセスが追加されます。あなたならどうしますか?
関数を使用してスーパー カラムにアクセスしますか?
context["column family"]["row key"].sc("super column")["column name"] = 123;
または、スーパー カラムを他のパラメータと同様にシームレスに機能させますか?
context["column family"]["row key"]["super column"]["column name"] = 123;
明らかに、システム (列ファミリー) は何が何であるかを認識しています。したがって、どちらの方法でも簡単に実装できますが、スーパーカラムの配列構文をサポートするためにライブラリがかなり複雑になります。
行を指定するときに使用できるオブジェクトを追加するという別のアイデアがありました。しかし、それはかなり醜く見えます:
context["column family"][sc("row key", "super column")]["column name"] = 123;
これは実装が簡単ですが、最終的なコードを見ると見栄えがよくありません。
このような問題へのより stl またはブーストのようなアプローチは何でしょうか?