fix debian build failure; refs #12

This commit is contained in:
Marc Wäckerlin
2014-12-12 12:49:17 +00:00
parent 83530df845
commit cba752892d
2 changed files with 43 additions and 39 deletions

View File

@@ -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