私はboost :: gilのソースコードを見ていましたが、このコメントと対応するコードが2Dポイントクラスにあります。安全な演算子[]へのアクセスのためのメンバ配列への静的ポインタ
const T& operator[](std::size_t i) const { return this->*mem_array[i]; }
T& operator[](std::size_t i) { return this->*mem_array[i]; }
...
private:
// this static array of pointers to member variables makes operator[]
// safe and doesn't seem to exhibit any performance penalty
static T point2<T>::* const mem_array[num_dimensions];
http://www.boost.org/doc/libs/develop/boost/gil/utilities.hpp
質問:
- これは正確に何をしますか?
- これはどのようにして
operator[]
を安全にしますか?
コメントは「安全」を定義していないので、それが何を意味するのか、それがどのように機能するのかを言うことは不可能です。もちろん、それが意図していることを**推測することはいつでも可能です。推測が示唆することが何であれ、どうしたらよいかどうかについての仮説を回すことができます。 –