y‰SŽÒнŒ}zC/C++Ž ..
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