mit fester Länge ist. Der Typ könnte ein Array im C-Stil sein, ein std :: array , ein std :: span oder ein benutzerdefinierter Container. Ich kann nach dem Zustand
Container wie im folgenden Code gezeigten Zustand suchen, aber ich kann es nicht auf
nach dem Längenzustand prüfen. < /P>
Code: Select all
template
concept fixed_container =
requires (T const& t)
{
{std::size(t)} -> std::same_as;
{std::begin(t)};
{std::end(t)};
}
// && std::declval().size() == N // Error: 'declval() must not be used!'
// && T::size() == N // Error: 'call to non-static member function without an object argument'
;
// These should all be correct
static_assert( fixed_container);
static_assert(!fixed_container);
static_assert( fixed_container);
static_assert(!fixed_container);
static_assert( fixed_container);
static_assert(!fixed_container);
< /code>
Ideen? requires (T const& t)
{
{std::size(t)} -> std::same_as;
{std::begin(t)};
{std::end(t)};
}
< /code>
kann durch eine einzelne Zeile < /p>
ersetzt werden std::ranges::sized_range