Mercurial > octave
changeset 23686:93371ce5378d
fix variadic template declaration
* symtab.cc (dump_container_map): Use correct variadic template
declaration. Delete non-template std::list and std::set versions.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 24 Jun 2017 15:53:17 -0400 |
parents | a94ed7424d63 |
children | 315a3dcc229c |
files | libinterp/corefcn/symtab.cc |
diffstat | 1 files changed, 4 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/symtab.cc Sat Jun 24 14:10:13 2017 -0400 +++ b/libinterp/corefcn/symtab.cc Sat Jun 24 15:53:17 2017 -0400 @@ -1419,11 +1419,10 @@ return fcn; } -#if 0 -// This fails with GCC 7. -template <typename V, template <typename...> class C> +template <template <typename, typename...> class C, typename V, + typename... A> static octave_value -dump_container_map_template (const std::map<std::string, C<V>>& container_map) +dump_container_map (const std::map<std::string, C<V, A...>>& container_map) { if (container_map.empty ()) return octave_value (Matrix ()); @@ -1433,49 +1432,12 @@ for (const auto& nm_container : container_map) { std::string nm = nm_container.first; - const C<V>& container = nm_container.second; + const C<V, A...>& container = nm_container.second; info_map[nm] = Cell (container); } return octave_value (info_map); } -#else -static octave_value -dump_container_map (const std::map<std::string, std::list<std::string>>& container_map) -{ - if (container_map.empty ()) - return octave_value (Matrix ()); - - std::map<std::string, octave_value> info_map; - - for (const auto& nm_container : container_map) - { - std::string nm = nm_container.first; - const std::list<std::string>& container = nm_container.second; - info_map[nm] = Cell (container); - } - - return octave_value (info_map); -} - -static octave_value -dump_container_map (const std::map<std::string, std::set<std::string>>& container_map) -{ - if (container_map.empty ()) - return octave_value (Matrix ()); - - std::map<std::string, octave_value> info_map; - - for (const auto& nm_container : container_map) - { - std::string nm = nm_container.first; - const std::set<std::string>& container = nm_container.second; - info_map[nm] = Cell (container); - } - - return octave_value (info_map); -} -#endif octave_value symbol_table::dump (void) const