Disponibilité des "move-semantics" ?
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:
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.