diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2015-01-22 01:38:38 +0000 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2015-01-22 01:38:38 +0000 |
commit | ba43a216fdd1ee5f77f3aece4ce9dbf441bab3e6 (patch) | |
tree | 22cb00552249144053b77ac73ea50c7bf06a90da | |
parent | ad7e7fc342bccc95badc1b97f04a1f80c984fb82 (diff) |
Disambiguate constructor's initialization call to its base class.
A particular LLInitParam::TypeValuesHelper specialization is derived from a
different TypeValuesHelper specialization. The subclass constructor
TypeValuesHelper(...) has previously forwarded the call to its base-class
constructor with:
TypeValuesHelper(val): TypeValuesHelper(val) {}
This is the first time I've looked at that; I'm a bit surprised that previous
compilers blithely accept it, and apparently understand the intent. gcc 4.7
complains that we would need to turn on -std=c++11 to support delegating
constructors; obviously the second TypeValuesHelper is now assumed to be the
class being defined, rather than its base class.
Fortunately the class already has typedefs for both specializations, fully
qualified with all template parameters, so I simply replaced the second
TypeValuesHelper reference with base_t.
-rwxr-xr-x | indra/llcommon/llinitparam.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h index be3552cb46..c65b05f610 100755 --- a/indra/llcommon/llinitparam.h +++ b/indra/llcommon/llinitparam.h @@ -435,7 +435,7 @@ namespace LLInitParam typedef self_t type_value_t; TypeValuesHelper(const std::string& val) - : TypeValuesHelper(val) + : base_t(val) {} void operator ()(const std::string& name) |