[Orxonox-commit 6319] r10976 - code/branches/cpp11_v2/src/libraries/util
muemart at orxonox.net
muemart at orxonox.net
Fri Dec 25 21:07:13 CET 2015
Author: muemart
Date: 2015-12-25 21:07:12 +0100 (Fri, 25 Dec 2015)
New Revision: 10976
Modified:
code/branches/cpp11_v2/src/libraries/util/Math.h
code/branches/cpp11_v2/src/libraries/util/MultiType.h
Log:
Add some static asserts
Modified: code/branches/cpp11_v2/src/libraries/util/Math.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/util/Math.h 2015-12-23 18:16:33 UTC (rev 10975)
+++ code/branches/cpp11_v2/src/libraries/util/Math.h 2015-12-25 20:07:12 UTC (rev 10976)
@@ -180,9 +180,7 @@
template <typename T>
inline T zeroise()
{
- // Default, raise a compiler error without including large boost header cascade.
- T temp{};
- *********temp; // If you reach this code, you abused zeroise()!
+ static_assert(sizeof(T) != sizeof(T), "No template specialization available for T");
return temp;
}
Modified: code/branches/cpp11_v2/src/libraries/util/MultiType.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/util/MultiType.h 2015-12-23 18:16:33 UTC (rev 10975)
+++ code/branches/cpp11_v2/src/libraries/util/MultiType.h 2015-12-25 20:07:12 UTC (rev 10976)
@@ -427,7 +427,10 @@
this->createNewValueContainer(value);
}
/// Creates a new value container (works only with specialized types).
- template <typename T> inline void createNewValueContainer(const T& value) { /* STATIC ASSERT */ *****value; }
+ template <typename T> inline void createNewValueContainer(const T& value)
+ {
+ static_assert(sizeof(T) != sizeof(T), "No template specialization available for T");
+ }
MT_ValueBase* value_; //!< A pointer to the value container
};
More information about the Orxonox-commit
mailing list