$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Pau Garcia i Quiles (pgquiles_at_[hidden])
Date: 2008-04-10 17:26:53
Hello,
I'm trying to implement something like the registerField/field methods  
of QWizard in Qt (  
http://doc.trolltech.com/4.4beta/qwizard.html#registering-and-using-fields )  
but without Qt.
Long story short, what I'm trying to do is to have a list of member  
functions I should call to get a value from an instance of a class.  
There will be *hundreds* of different classes with different accessor  
methods (sometimes it will be called "value()", others "text()", yet  
in other cases it may be "isEnabled()"). Return types will also be  
different, but that's already solved by boost::any.
I'm attaching two examples of what I want to achieve:
* nonparametrized.cpp: it works fine but it's not parametrized, i. e.
* parametrized.cpp: it's essentially the nonparametrized.cpp code but  
introducing a new class called "Proxy" which has a "field" method  
which should receive the parameters boost::function needs.
Problem is, for parametrized.cpp I cannot figure what the signature of  
the "field" method (line 27) should be in order to call it for  
different objects (see lines 48, 61 and 74). I'm not even sure I need  
to specify those three parameters! Can you help me?
Code can be compiled against Boost 1.34.1 (not tested against 1.35.0) with:
g++ -o nonparametrized nonparametrized.cpp -lboost_signals
Thank you.
-- Pau Garcia i Quiles http://www.elpauer.org (Due to my workload, I may need 10 days to answer)