Skip to content

[libc++] make_optional(initializer_list<_Up> __il, _Args&&... __args) is underconstrained #163716

@hewillk

Description

@hewillk
#include <optional>

int main() {
  struct S { int x; int y; };
  auto a = std::make_optional<S>({1, 2});
}

https://godbolt.org/z/hfnTWhbYW

make_optional(initializer_list<U> il, Args&&... args) is equivalent to: return optional<T>(in_place, il, std​::​forward<Args>(args)...);
So it shouldn't participate in overload resolution because the optional's constructor constraint is not satisfied?

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateResolved as duplicatelibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions