[Bug libstdc++/92156] New: Cannot in-place construct std::any with std::any
jason.e.cobb at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Oct 18 19:40:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92156
Bug ID: 92156
Summary: Cannot in-place construct std::any with std::any
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: jason.e.cobb at gmail dot com
Target Milestone: ---
GCC (and clang, when using libstdc++) claim that the following program is
ill-formed when compiled with "-std=c++17":
#include <any>
int main() {
auto a = std::any(std::in_place_type<std::any>, 5);
}
[end code]
Both clang with libc++ and MSVC accept this program.
On Compiler Explorer: https://godbolt.org/z/ckzMsg .
The standard says that this is correct. Under
http://eel.is/c++draft/any.cons#itemdecl:5 , the only requirements are that T
be copy-constructible and constructible from the in-place args. std::any is
copy-constructible and constructible from int, so this program should be
well-formed.
More information about the Gcc-bugs
mailing list