Re: [Cppcms-users] init(content::base &) can't be used in derived class of cppcms::application
Brought to you by:
artyom-beilis
From: kpeo <sla...@ya...> - 2011-01-30 17:50:27
|
Thank you for so detailed information and fast answer! I take last revision (1661) and all works fine! Also, think too that using new init functions in cppcms::application be more clear and convenient way for future use. 30.01.2011, 18:20, "Artyom" <art...@ya...>: > Hello, > > There were new virtual member functions where added > to cppcms::application: > > void init() > void clear(); > > That are called upon URL Dispatching automatically. > > Because you have your own init(foo &) it overloads application::init and > actually > hides it. > > Because: > struct foo { > void init(); > } > > struct bar : public foo { > void init( int y); > } > > Then: > > bar b; > b.init() -- illegal as it hidden by overloaded version > you need to add > > struct bar : public foo { > void init( int y); > void init() { foo::init(); } > } > > So simplest thing you can do is to add to your app > > void init() {} if you don't use it at all > > Or better > > void init() { my_parent_class::init(); } > > So it would not be unhidden. > > All this for support of additional programming > style when your application and context can be the same > object which may be very convenient because it allows > to access much more powerful tools from view. > > See exaples/message_board > > In the second thought.. > > I can fix it so it would work with overloading. > > Take rev. 1659, it should work fine. > > Artyom > > ----- Original Message ---- > >> From: kpeo <sla...@ya...>; >> To: cpp...@li... >> Sent: Sun, January 30, 2011 4:41:20 PM >> Subject: [Cppcms-users] init(content::base &) can't be used in derived class of >> cppcms::application >> >> Hello Artyom and all! >> >> As i understood correctly, function like init(content::base &) can't be used >> now in derived class of cppcms::application since r1653 of >> cppcms/url_dispatcher.h, where new init() is now used. >> >> So we should to rename our init(content::base &) function to ini(content::x &) >> for example, to avoid compile errors like: >> >> /usr/local/include/cppcms/url_dispatcher.h: In constructor >> ‘cppcms::url_dispatcher::page_guard<C, typename >> booster::enable_if<booster::is_base_of<cppcms::application, C>, >> void>::type>::page_guard(C*) [with C = app::project]’: >> /usr/local/include/cppcms/url_dispatcher.h:210: instantiated from ‘void >> cppcms::url_dispatcher::binder0<C>::operator()() const [with C = >> app::project]’ >> /usr/local/include/booster/function.h:163: instantiated from ‘void >> booster::function<Result()>::callable_impl<void, F>::call() [with F = >> cppcms::url_dispatcher::binder0<app::project>, Result = void]’ >> /media/opnp/project.cpp:161: instantiated from here >> /usr/local/include/cppcms/url_dispatcher.h:187: error: no matching function >> for call to ‘app::project::init()’ >> /media/opnp/project.cpp:49: note: candidates are: void >> app::project::init(content::base&) >> >> /media/opnp/project.cpp:161 - end '}' of "namespace app {" >> >> /media/opnp/project.cpp:49: >> >> 46: project::project(site &s) : base(s) >> 47: { >> 48: // >> 49: w.dispatcher().assign("^/?project/?(\\w+)?/?$",&project::out,this,1); >> >> So, i understand correctly and this is not a bug? >> >> ------------------------------------------------------------------------------ >> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! >> Finally, a world-class log management solution at an even better price-free! >> Download using promo code Free_Logger_4_Dev2Dev. Offer expires >> February 28th, so secure your free ArcSight Logger TODAY! >> http://p.sf.net/sfu/arcsight-sfd2d >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users |