「regular()関数が出力するオブジェクトがRegularコンセプトの要件を満たさないんじゃないか」
というレビューが挙がってきたので調べてました。
Regularコンセプトを、N2800から持ってくると以下のような定義になっています。
auto concept Semiregular<typename T> : CopyConstructible<T>, CopyAssignable<T>, FreeStoreAllocatable<T> { requires SameType<CopyAssignable<T>::result_type, T&>; } auto concept Regular<typename T> : Semiregular<T>, DefaultConstructible<T>, EqualityComparable<T> { }
regular()関数の出力するオブジェクトには、EqualityComparableが抜けているようだったので、OvenToBoostのregular()には追加しておきました。現在、ドキュメントを書いているところです。