nie jestem świadomy każdej standardowej preprocesora makro, ale:
- Visual Studio wprowadzono wsparcie w VC2010, którego wewnętrzna wersja 1600, więc można skontaktować się z
_MSC_VER >= 1600
- GCC wspiera referencje rvalue od version 4.3, więc można sprawdzić na tej wersji wraz z
__GXX_EXPERIMENTAL_CXX0X__
- Clang definiuje
__has_feature
macros dla robiąc dokładnie to, czego potrzebujesz: __has_feature(cxx_rvalue_references)
Tak więc dla najbardziej popularnych kompilatorów, powinno być dość łatwo spleść coś razem.
Jestem też pewien, że doładowania ma makro do tego celu, który może być w stanie wykorzystać, jeśli projekt zawiera podwyższający (inaczej można spojrzeć na ich realizację)
dziękuję bardzo :) – fredoverflow
Muszę przyznać, że naprawdę uwielbiam sposób, w jaki Clang zdecydował się reklamować swoje różne funkcje i rozszerzenia, jest o wiele jaśniejszy niż sprawdzanie z numerem wersji i dużo bardziej szczegółowy. –