[Bug c++/88026] New: Explicit deduction guide fails for move-only type
toe-ger at web dot de
gcc-bugzilla@gcc.gnu.org
Wed Nov 14 19:25:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88026
Bug ID: 88026
Summary: Explicit deduction guide fails for move-only type
Product: gcc
Version: 8.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: toe-ger at web dot de
Target Milestone: ---
*Example code*:
struct move_only {
move_only() = default;
move_only(const move_only &) = delete;
};
template <class T>
struct S {
S(T &){}
};
template <class T>
S(T)->S<T>;
int main() {
move_only m;
S s = m;
(void)s;
}
*Expected output*:
*Actual output*:
<source>: In function 'int main()':
<source>:16:11: error: class template argument deduction failed:
S s = m;
^
<source>:16:11: error: use of deleted function 'move_only::move_only(const
move_only&)'
<source>:3:5: note: declared here
move_only(const move_only &) = delete;
^~~~~~~~~
<source>:12:1: note: initializing argument 1 of 'S(T)-> S<T> [with T =
move_only]'
S(T)->S<T>;
^
*Reproduction*:
https://godbolt.org/z/G0_8dw
More information about the Gcc-bugs
mailing list