template <typename TYPENAME>
CHECK CheckInvariant(TYPENAME &obj)
{
+#if defined(_MSC_VER) || defined(__llvm__)
__if_exists(TYPENAME::Invariant)
{
CHECK(obj.Invariant());
{
CHECK(obj.InternalInvariant());
}
+#endif
CHECK_OK;
}
}
else
{
+#if defined(_MSC_VER) || defined(__llvm__)
__if_exists(TYPENAME::Check)
{
CHECK(o->Check());
}
+#endif
}
CHECK_OK;
template <typename TYPENAME>
CHECK CheckValue(TYPENAME &val)
{
+#if defined(_MSC_VER) || defined(__llvm__)
__if_exists(TYPENAME::Check)
{
CHECK(val.Check());
}
+#endif
CHECK(CheckInvariant(val));
{
LIMITED_METHOD_CONTRACT;
SUPPORTS_DAC;
-#if defined(_DEBUG)
+#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__))
__if_exists(CONTAINER::m_revision)
{
CHECK_MSG(m_revision == m_container->m_revision,
LIMITED_METHOD_CONTRACT;
#if defined(_DEBUG)
m_container = container;
+#if defined(_MSC_VER) || defined(__llvm__)
__if_exists(CONTAINER::m_revision)
{
m_revision = m_container->m_revision;
}
#endif
+#endif
}
void Resync(const CONTAINER *container)
{
LIMITED_METHOD_DAC_CONTRACT;
-#if defined(_DEBUG)
+#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__))
__if_exists(CONTAINER::m_revision)
{
m_revision = m_container->m_revision;
}
#endif
}
-
+
#if defined(_DEBUG)
const CONTAINER *GetContainerDebug() const
{