Bonjour,
je cherche à forcer la copie d'une instance sur un retour de fonction, mais je n'y arrive pas !
Je sais que ça n'a pas vraiment de sens, mais c'est juste parce que je voudrais tester un truc.
Prenons le code suivant:
Ça ne compile pas : il veut absolument son move ctor !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class Foo { public: Foo(int num = 10) : m_num(num) {} Foo(const Foo& other) : m_num(other.m_num) {} Foo(const Foo&& other) = delete; Foo& operator = (const Foo& other) = delete; Foo& operator = (const Foo&& other) = delete; int m_num = 5; }; Foo f(const Foo& foo1) { return Foo(foo1.m_num + 1); } int main() { Foo foo1; Foo foo2 = f(foo1); }
Je travaille avec Visual Studio 2017.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Error C2280 'Foo::Foo(const Foo &&)': attempting to reference a deleted function
Merci par avance
Partager