|
|
|
@ -14,19 +14,21 @@ |
|
|
|
|
# if __cplusplus < 201103L |
|
|
|
|
# if __cplusplus==1 |
|
|
|
|
# if __APPLE__ |
|
|
|
|
/// Code is compiled with old non C++11 standard compliant compiler
|
|
|
|
|
/** There are workarounds for old non C++11 compatible
|
|
|
|
|
compilers. These workarounds are deprecated, but will |
|
|
|
|
remain until most compilers fully support C++11. So |
|
|
|
|
this workaround will be removed in future releases, |
|
|
|
|
when support for C++11 is more common. Only rely on |
|
|
|
|
this workaround, if you really have to. |
|
|
|
|
Mac gcc is even worse than on other systems. */ |
|
|
|
|
# define MRW__OLD_PRE11_COMPILER |
|
|
|
|
# warning you need a C++11 compliant compiler, on gcc: add -std=c++11 |
|
|
|
|
# warning emulating C++11 - this changes the way you use the library |
|
|
|
|
# warning this is deprecated and will be removed in future releases |
|
|
|
|
# warning refere to the library documentation for more details |
|
|
|
|
# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 |
|
|
|
|
/// Code is compiled with old non C++11 standard compliant compiler
|
|
|
|
|
/** There are workarounds for old non C++11 compatible
|
|
|
|
|
compilers. These workarounds are deprecated, but will |
|
|
|
|
remain until most compilers fully support C++11. So |
|
|
|
|
this workaround will be removed in future releases, |
|
|
|
|
when support for C++11 is more common. Only rely on |
|
|
|
|
this workaround, if you really have to. Mac gcc is |
|
|
|
|
even worse than on other systems. */ |
|
|
|
|
# define MRW__OLD_PRE11_COMPILER |
|
|
|
|
# warning you need a C++11 compliant compiler, on gcc: add -std=c++11 |
|
|
|
|
# warning emulating C++11 - this changes the way you use the library |
|
|
|
|
# warning this is deprecated and will be removed in future releases |
|
|
|
|
# warning refere to the library documentation for more details |
|
|
|
|
# endif |
|
|
|
|
# else |
|
|
|
|
// __cplusplus==1 is a known bug in gcc 4.6.3
|
|
|
|
|
# warning your compiler has a know bug, please upgrade to gcc >= 4.7 |
|
|
|
@ -69,33 +71,35 @@ namespace std { |
|
|
|
|
}; |
|
|
|
|
# else |
|
|
|
|
# warning trying standard C++11 support |
|
|
|
|
# include <memory> |
|
|
|
|
# endif |
|
|
|
|
# elif __APPLE__ |
|
|
|
|
# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 |
|
|
|
|
/// Code is compiled with an old non C++11 standard compliant compiler
|
|
|
|
|
/** There are workarounds for old non C++11 compatible
|
|
|
|
|
compilers. These workarounds are deprecated, but will |
|
|
|
|
remain until most compilers fully support C++11. So this |
|
|
|
|
workaround will be removed in future releases, when support |
|
|
|
|
for C++11 is more common. Only rely on this workaround, if |
|
|
|
|
you really have to. */ |
|
|
|
|
# define MRW__OLD_PRE11_COMPILER |
|
|
|
|
# warning you need a C++11 compliant compiler, on gcc: add -std=c++11 |
|
|
|
|
# warning emulating C++11 - this changes the way you use the library |
|
|
|
|
# warning this is deprecated and will be removed in future releases |
|
|
|
|
# warning refere to the library documentation for more details |
|
|
|
|
# warning special workaround for apple |
|
|
|
|
# include <tr1/memory> |
|
|
|
|
namespace std { |
|
|
|
|
// there is no std::shared_ptr in apple, but
|
|
|
|
|
// std::tr1::shared_ptr in <tr1/memory>
|
|
|
|
|
template <typename T> class shared_ptr: public tr1::shared_ptr<T> { |
|
|
|
|
public: |
|
|
|
|
explicit shared_ptr(): tr1::shared_ptr<T>() {} |
|
|
|
|
explicit shared_ptr(T* p): tr1::shared_ptr<T>(p) {} |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
# elif __APPLE__ && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 |
|
|
|
|
/// Code is compiled with an old non C++11 standard compliant compiler
|
|
|
|
|
/** There are workarounds for old non C++11 compatible
|
|
|
|
|
compilers. These workarounds are deprecated, but will remain |
|
|
|
|
until most compilers fully support C++11. So this workaround |
|
|
|
|
will be removed in future releases, when support for C++11 is |
|
|
|
|
more common. Only rely on this workaround, if you really have |
|
|
|
|
to. */ |
|
|
|
|
# define MRW__OLD_PRE11_COMPILER |
|
|
|
|
# warning you need a C++11 compliant compiler, on gcc: add -std=c++11 |
|
|
|
|
# warning emulating C++11 - this changes the way you use the library |
|
|
|
|
# warning this is deprecated and will be removed in future releases |
|
|
|
|
# warning refere to the library documentation for more details |
|
|
|
|
# warning special workaround for apple |
|
|
|
|
# include <tr1/memory> |
|
|
|
|
namespace std { |
|
|
|
|
// there is no std::shared_ptr in apple, but
|
|
|
|
|
// std::tr1::shared_ptr in <tr1/memory>
|
|
|
|
|
template <typename T> class shared_ptr: public tr1::shared_ptr<T> { |
|
|
|
|
public: |
|
|
|
|
explicit shared_ptr(): tr1::shared_ptr<T>() {} |
|
|
|
|
explicit shared_ptr(T* p): tr1::shared_ptr<T>(p) {} |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
# endif |
|
|
|
|
# else |
|
|
|
|
# include <memory> |
|
|
|
|
# endif |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|