Commit: a1fcee79f509fb52f1d82b12957a26d2bbe84810
Author: Sergey Sharybin
Date:   Mon Feb 9 20:24:09 2015 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rBa1fcee79f509fb52f1d82b12957a26d2bbe84810

Depsgraph: Fix compilation error with C++11 disabled

===================================================================

M       intern/cycles/util/util_types.h
M       source/blender/depsgraph/intern/depsgraph_build.cpp

===================================================================

diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h
index 19ee2e1..45fdd3c 100644
--- a/intern/cycles/util/util_types.h
+++ b/intern/cycles/util/util_types.h
@@ -485,14 +485,20 @@ enum InterpolationType {
  * incompatible types when assigning to type 'Foo' from type 'Bar'
  * ... the compiler optimizes away the temp var */
 #if defined(__GNUC__)
+#  if __cplusplus > 199711L
+#    define DECLTYPE(x) decltype(x)
+#  else
+#    define DECLTYPE(x) typeof(x)
+#  endif
+
 #define CHECK_TYPE(var, type)  {  \
-       decltype(var) *__tmp;         \
+       DECLTYPE(var) *__tmp;         \
        __tmp = (type *)NULL;         \
        (void)__tmp;                  \
 } (void)0
 
 #define CHECK_TYPE_PAIR(var_a, var_b)  {  \
-       decltype(var_a) *__tmp;               \
+       DECLTYPE(var_a) *__tmp;               \
        __tmp = (typeof(var_b) *)NULL;        \
        (void)__tmp;                          \
 } (void)0
diff --git a/source/blender/depsgraph/intern/depsgraph_build.cpp 
b/source/blender/depsgraph/intern/depsgraph_build.cpp
index 33001ba..da3aef0 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build.cpp
@@ -569,13 +569,15 @@ static void deg_graph_print_cycle_rel(const 
OperationDepsNode *to, const Operati
               rel->name.c_str());
 }
 
+/* TODO(sergey): Consider moving to proper location. */
+struct StackEntry {
+       OperationDepsNode *node;
+       StackEntry *from;
+       DepsRelation *via_relation;
+};
+
 static void deg_graph_detect_cycles(Depsgraph *graph)
 {
-       struct StackEntry {
-               OperationDepsNode *node;
-               StackEntry *from;
-               DepsRelation *via_relation;
-       };
        /* Not is not visited at all during traversal. */
        const int NODE_NOT_VISITED = 0;
        /* Node has been visited during traversal and not in current stack. */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to