Closed KowerKoint closed 2 months ago
get_target_qubit_list、get_target_qubit_maskに関してはどうするべきか要検討(これは統一して両方getでもいいかも?)
これはまさに「メンバに直接アクセスする場合、または実際にはmaskなど他の持ち方をしているがそこからの変換コストが低くメンバとして直接持っているかのように振る舞いたい場合」ではないですか?これに照らせばgetを付けない名前がよいのではないでしょうか。
これに照らせばgetを付けない名前がよいのではないでしょうか。
ゲートによっては(Probablisticとか)取得が難しいというイメージだったけど、 だいたい一瞬だしProbablisticも今例外で今後コンストラクタでマスク作るくらいでいい気もするのでgetつけなくていいかも
PauliOperator::get_coef
、internal::XGateImpl::target
など、getterにはメンバの名前にget_
がついているものとついていないものがある。 また、StateVector::amplitudes
のようにgetterに見えて実際はタダのメンバ取得ではなく大きなコピーがかかっているものもある。 これらをわかりやすくなるために、以下の命名規則を採用する。Complex
のように十分コピーコストが小さければT
、vectorのように大きければconst T&
で返すT&
。もし本当はその形で持っていないならinternal::BitVector::_Reference
のように参照型のように振る舞うラッパークラスを返してもよいが、現状そういうものはなさそう。get_
つきまたはその他の適切な動詞型の名前をつける。get_target_qubit_list
、get_target_qubit_mask
に関してはどうするべきか要検討(これは統一して両方getでもいいかも?)