У меня есть constexpr
таблицы поиска, которые содержат 1024 элемента и выглядят следующим образом:
constexpr auto ln2_mantissa = std::array<std::uint32_t, 1024>{0x651fbb09u, 0xe35dff88u, /* ... */ 0x2168c234u, 0xc90fdaa2u};
std::array
вызывает эту проверку времени компиляции:
#if _HAS_CXX17
template <class _First, class... _Rest>
struct _Enforce_same {
static_assert(conjunction_v<is_same<_First, _Rest>...>,
"N4687 26.3.7.2 [array.cons]/2: "
"Requires: (is_same_v<T, U> && ...) is true. Otherwise the program is ill-formed.");
using type = _First;
};
, чтобы гарантировать, что все элементы внутри {0x651fbb09u, /* ... */}
относятся к одному типу.
Visual Studio имеет тенденцию всегда отображать полную цепочку шаблонов std::_Conjunction
как активную ошибку всякий раз, когда я сталкиваюсь с ошибкой сборки любой (даже если ошибка где-то еще; все типы внутри std::array<>{ ... }
равны).
Error (active) E1018 class "std::_Conjunction<true, std::is_same<unsigned int, unsigned int>, std::is_same<unsigned int, unsigned int>, std::is_same<unsigned int, unsigned int>, /* ... */
полный список ошибок соединения std :: _
из-за этого очень трудно увидеть мои настоящие ошибки сборки, так как результат выше указан первым и несколько раз.
Это вызывает активные ошибки E0262
, E1018
и E0135
есть ли способ исключить эти списки из моего списка ошибок?
Visual Studio Community 2019 версии 16.6.2