Усі конструктори std :: span оголошені constexpr, однак я не можу змусити жодного з них працювати в контексті constexpr. Якщо коментувати будь-який з contexpr нижче, це призведе до помилки компіляції.
#include <array>
#include <span>
int main()
{
constexpr int carray[3] = { 0, 1, 2 };
constexpr std::array<int, 3> array{ 0, 1, 2 };
using S = std::span<const int, 3>;
/*constexpr*/ S span1{ array.data(), 3 };
/*constexpr*/ S span2{array.begin(), array.end()};
/*constexpr*/ S span3{carray};
/*constexpr*/ S span4{array};
}
Чи справді можливо створити тип проміжного типу contexpr, оскільки, здається, конструктори ніколи не можуть бути оцінені під час компіляції, коли їм доведеться ініціалізувати покажчик чи посилання?
Відкиньте коментарі конспектори не видаляйте їх.
—
Андреас Лоанхое
Ви ініціалізуєте проміжок часу, який я мав на меті ініціалізувати проміжок конспектора
—
Andreas Loanjoe
До. Не впевнений, чому я це зробив. nevermind
—
NathanOliver
дивно, не розумію, для чого це було б необхідне, щоб проліт жив лише в межах місцевого простору ...
—
Andreas Loanjoe
Тісно пов’язані: stackoverflow.com/q/57545503/2069064
—
Barry