https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121521

--- Comment #1 from Desmond Gold <cooky.ykooc922 at gmail dot com> ---
Edited testcase:

#include <array>
#include <tuple>

struct Point {
    int x, y, z;
};

int main() {
    constexpr int arr[] {1, 2, 3};
    constexpr auto [a, b, c] = arr;

    static constexpr std::array std_arr {4, 5, 6};
    constexpr auto [d, e, f] = std_arr; // error
    constexpr auto [g, h, i] = std::array{42, 91, 72}; // error

    constexpr auto [j, k] = std::make_tuple(1, 3.14f); // error
    constexpr auto [l, m] = std::pair {'A', true}; // error

    constexpr auto [x, y, z] = Point {9, 0, -4};
}

In general, it rejects lines that accept objects of types with tuple protocol.

Reply via email to