読者です 読者をやめる 読者になる 読者になる

ゆとりーなの日記

日記的な事を書いて行くと思はれる

Boost.Opetatorsがconstexpr対応してくれるとうれしいなとか

こういうこと出来たらうれしいんですがどうなのでしょう。雰囲気自動生成されるoperator !=にはconstexprが付いてなさそうなので残当しそうです。

#include <boost/operatoes.hpp>

struct hoge : private boost::operators<hoge> {
  constexpr explicit h1(int a) : a_(a) {}
  
  int a_;
};

constexpr bool operator ==(const hoge &lhs, const hoge &rhs) {
  return lhs.a_ == rhs.a_;
}

#include <iostream>

int main() {
  constexpr hoge h1(0);
  constexpr hoge h2(1);
  constexpr bool b1 = h1 == h2;
  std::cout << std::boolalpha << b1 << std::endl;
  constexpr bool b2 = h1 != h2;
  std::cout << std::boolalpha << b2 << std::endl;
  return 0;
}

取り敢えず出て間もないBoost1_47_0の時点ではダメでした。ひょっとしてなにかやり方があったりするんですかね。