From: Foster T. B. <fbr...@ad...> - 2005-03-25 17:11:42
|
All, On Mar 25, 2005, at 08:05a, David Catmull wrote: > I'm having a hard time figuring out this error. It happens on this > line in the bevel_button_proxy_t constructor (around line 1315 of > client_assembler.cpp): > control_m.add_menu_item( > (*iter).get<adobe::dictionary_t>()[key_name].get<std::string>(), > (*iter).get<adobe::dictionary_t>()[key_value]); > I'm getting "parse error before `>' token" and it seems to be > referring to <adobe::dictionary_t>. This is odd because dictionary_t > is used several times before this in this file. > For these errors, try adding a 'template' keyword in front of the call to get: (*iter).template get<adobe::dictionary> ... [key_name].template get<std::string>(), etc., etc. Addition of the keyword is a permissible C++ "hint" to compilers that get is a templated function. The reason why this can't necessarily be figured out by the compiler eludes me at this point. Let me know if that helps. > In assemblage.cpp, line 28, changing this: > adobe::for_each(connections_m, boost::bind(connection_t::disconnect, > _1)); > to this: > adobe::for_each(connections_m, boost::bind(&connection_t::disconnect, > _1)); > fixes another compiler error. From what I understand connection_t::disconnect and &connection_t::disconnect are equivalent provided that connection_t::disconnect is a member function, not a member variable. The change shouldn't be necessary but if the compiler prefers the latter over the former, so be it. Blessings, Foster -- Foster T. Brereton <}}}>< Romans 3:21-26 A d o b e S o f t w a r e T e c h n o l o g y L a b "What 99 percent of programmers need to know is not how to build components but how to use them." -- Alexander Stepanov |