Bonjour à tous,

Je fournis une classe A via une API qui se veut "portable", et j'aimerais si possible y intégrer une sémantique de mouvement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class A {
    A() {}
    A(const A& other) {}
    A& operator=(const A& other) {}
    ~A() {}
 
    #ifdef MOVESEMANTICS_AVAILABLE
    A(A&& other) {}
    A& operator=(A&& other) {}
    #endif
};
Y a-t-il une manière simple (via la STL par exemple) de définir ce MOVESEMANTICS_AVAILABLE, pour savoir si un compilo gère ou non cette fonctionnalité ? Ou faut-il le déterminer soi-même à coup de #ifdef, compilo par compilo, version par version ?

PS: D'ailleurs, peut-on seulement exporter une rvalue-reference dans une DLL ?

Merci.