Index: gin/function_template.h |
diff --git a/gin/function_template.h b/gin/function_template.h |
index 955ff53c284d416b8ffa33e2011635a342476c2c..2b66b666ac8b76ed1dfa36686bab2d9eeac6650a 100644 |
--- a/gin/function_template.h |
+++ b/gin/function_template.h |
@@ -150,8 +150,13 @@ class Invoker<IndicesHolder<indices...>, ArgTypes...> |
// so it is guaranteed ArgumentHolders will be initialized (and thus, will |
// extract arguments from Arguments) in the right order. |
Invoker(Arguments* args, int create_flags) |
- : ArgumentHolder<indices, ArgTypes>(args, create_flags)..., |
- args_(args) {} |
+ : ArgumentHolder<indices, ArgTypes>(args, create_flags)..., args_(args) { |
+ // GCC thinks that create_flags is going unused, even though the |
+ // expansion above clearly makes use of it. Per jyasskin@, casting |
+ // to void is the commonly accepted way to convince the compiler |
+ // that you're actually using a parameter/varible. |
+ (void)create_flags; |
+ } |
bool IsOK() { |
return And(ArgumentHolder<indices, ArgTypes>::ok...); |