static_assert to enforce this going forward
authorEddie Hung <eddie@fpgeh.com>
Thu, 12 Sep 2019 18:45:17 +0000 (11:45 -0700)
committerEddie Hung <eddie@fpgeh.com>
Thu, 12 Sep 2019 18:45:17 +0000 (11:45 -0700)
kernel/sigtools.h

index 4e97bb7755061d34c88c683ce8999deae6bebb3d..094d73941507db25602fbb7cd4d47765ab96e6a1 100644 (file)
@@ -138,6 +138,8 @@ struct SigPool
 template <typename T, class Compare = std::less<T>>
 struct SigSet
 {
+       static_assert(!std::is_pointer<T>::value || !std::is_same<Compare, std::less<T>>::value, "Explicit `Compare' class require for SigSet with pointer-type values!");
+
        struct bitDef_t : public std::pair<RTLIL::Wire*, int> {
                bitDef_t() : std::pair<RTLIL::Wire*, int>(NULL, 0) { }
                bitDef_t(const RTLIL::SigBit &bit) : std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset) { }