戻り値のみ違う関数のオーバーロードについて
下記、std::vectorのbeginの定義ですが、タイトルの通り戻り値のみ違う、引数が同じ関数のオーバーロードをしていると思います。
オーバーロードは普通引数が違う関数でないとエラーが出ると思うのですが、これはどういった仕組で定義されているのでしょうか。
_LIBCPP_INLINE_VISIBILITY iterator begin() _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY const_iterator begin() const
_NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY iterator end() _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY const_iterator end() const _NOEXCEPT;