y‰SŽÒнŒ}zC/C++Ž ..
[2ch|¥Menu]
33:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/09/28 15:12:10
ˆê”Ê“I‚¶‚á‚È‚¢‚©‚à‚µ‚ê‚È‚¢‚¯‚Ç‚±‚¤‚¢‚¤Žè‚ªŠy‚Á‚Û‚¢

#include <map>
#include <string>
#include <iostream>

void funcA() { std::cout << "invoke func A\n" ; }
void funcB() { std::cout << "invoke func B\n" ; }

int main(void) {
@std::map< std::string, void(*)(void) > funcs ;
@funcs[ "‚ ‚¢‚¤‚¦‚¨" ] = funcA ;
@funcs[ "‚©‚«‚±‚­‚¯‚±" ] = funcB ;

@std::string str = "‚ ‚¢‚¤‚¦‚¨" ;
@void(*f)(void) = 0;
@f = funcs[str];
@if ( !f )
@@// default: ‚̈—
@else
@@f();

@return 0;
}
—v‚ÍðŒ‚ðƒL[AŒÄ‚Ño‚·ŠÖ”‚ð’l‚É‚·‚émap‚¾‚È
’l‚ðboost::function‚Ö‚ÌŽQƂƂ©‚É‚µ‚Ä‚â‚ê‚ÎA“®“I‚ȃIƒuƒWƒFƒNƒg‚̃ƒ\ƒbƒh‚ðŒÄ‚Ño‚·‚±‚Æ‚à‰Â”\


ŽŸƒy[ƒW
‘±‚«‚ð•\ަ
1‚ð•\ަ
ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

5099“ú‘O‚ÉXV/84 KB
’S“–:undef