diff options
Diffstat (limited to 'base/bind.h.pump')
-rw-r--r-- | base/bind.h.pump | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/base/bind.h.pump b/base/bind.h.pump index 11b4667..9d4c5ee 100644 --- a/base/bind.h.pump +++ b/base/bind.h.pump @@ -5,7 +5,25 @@ $$ $$ http://code.google.com/p/googletest/wiki/PumpManual $$ -$var MAX_ARITY = 6 +$$ +$$ MAX_ARITY controls the number of arguments that Bind() supports. +$$ The amount of code, and more importantly, the number of template types +$$ generated by pump grows at O(MAX_ARITY^2). +$$ +$$ We tried going to 11 and found it imposed an extra 10 penalty on windows +$$ cycle times compared to our original baseline of 6. +$$ +$$ Currently 7 is chosen as a compromise between supporting a convenient +$$ number of arguments and keeping compile times low. At 7, we have 115 +$$ templates being generated by pump. +$$ +$$ Be careful when adjusting this number. If people find a need to bind +$$ a larger number of arguments, consider refactoring the function to use +$$ a param struct instead of raising the MAX_ARITY. +$$ +$$ See http://crbug.com/98542 for more context. +$$ +$var MAX_ARITY = 7 // Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be |