vDTLinuxÁªÃË template struct LOOP_BODYvDTLinuxÁªÃË {vDTLinuxÁªÃË static void execute()vDTLinuxÁªÃË {vDTLinuxÁªÃË LOOP_BODYstart)>::execute();vDTLinuxÁªÃË Function::execute();vDTLinuxÁªÃË }vDTLinuxÁªÃË //ÏÂÃæµÄÕâ¸öÄ£°åº¯ÊýÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëÁ¬½ÓvDTLinuxÁªÃË template vDTLinuxÁªÃË static void execute(EnvironmentType&e)vDTLinuxÁªÃË {vDTLinuxÁªÃË LOOP_BODYstart)>::execute(e);vDTLinuxÁªÃË Function::execute(e);vDTLinuxÁªÃË }vDTLinuxÁªÃË };vDTLinuxÁªÃË //Ñ»·µÄÖÕÖ¹Óï¾ä£¬Í£Ö¹µÝ¹éÒÔ½áÊøÑ»·vDTLinuxÁªÃË template struct LOOP_BODYvDTLinuxÁªÃË {vDTLinuxÁªÃË static void execute(){}vDTLinuxÁªÃË //ÏÂÃæµÄÕâ¸öÄ£°åº¯ÊýÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëÁ¬½ÓvDTLinuxÁªÃË template vDTLinuxÁªÃË static void execute(EnvironmentType&e){}vDTLinuxÁªÃË };vDTLinuxÁªÃË };vDTLinuxÁªÃË //ΪÁËÄ£°å»¯±ØÐ뽫ÔÀ´µÄÊä³öº¯Êý×ö³ÉÒ»¸öÄ£°å½á¹¹ÌåvDTLinuxÁªÃË //template struct FunctionvDTLinuxÁªÃË //{vDTLinuxÁªÃË // static void execute()vDTLinuxÁªÃË // {vDTLinuxÁªÃË // //ÄãµÄ´úÂëÔÚÕâÀï±àдvDTLinuxÁªÃË // }vDTLinuxÁªÃË //};vDTLinuxÁªÃË //////////////////////////////////////////////////////////////////////vDTLinuxÁªÃË //////////////////////////////////////////////////////////////////////vDTLinuxÁªÃË //consµÄʵÏÖ£¬²ÉÓúÍSTLÀàËÆµÄÀàÐÍÃüÃû·½Ê½vDTLinuxÁªÃË template vDTLinuxÁªÃË struct consvDTLinuxÁªÃË {vDTLinuxÁªÃË typedef FirstType first_type;vDTLinuxÁªÃË typedef SecondType second_type;vDTLinuxÁªÃË };vDTLinuxÁªÃË struct null_type;//ÀàÐÍ´®ÖÕ½á·ûvDTLinuxÁªÃË //ÏÂÃæÊÇÁ½¸öΪÁËʵÏÖ¾²Ì¬ÀàÐÍÑ»·ËùÐèÒªµÄ¾²Ì¬Ôªº¯ÊývDTLinuxÁªÃË //lengthÔªº¯ÊýµÄʵÏÖvDTLinuxÁªÃË templatestruct length;vDTLinuxÁªÃË template<>struct lengthvDTLinuxÁªÃË {//·µ»ØÖµÎªÕûÊý£¬ÃüÃûΪvaluevDTLinuxÁªÃË enum{value=0};vDTLinuxÁªÃË };vDTLinuxÁªÃË templatevDTLinuxÁªÃË struct length >vDTLinuxÁªÃË {//·µ»ØÖµÎªÕûÊý£¬ÃüÃûΪvaluevDTLinuxÁªÃË enum{value=1+length::value};vDTLinuxÁªÃË };vDTLinuxÁªÃË //typeÔªº¯ÊýµÄʵÏÖvDTLinuxÁªÃË templatestruct type;vDTLinuxÁªÃË templatevDTLinuxÁªÃË struct type,0>vDTLinuxÁªÃË {//·µ»ØÖµÎªÀàÐÍ£¬ÃüÃûΪresultvDTLinuxÁªÃË typedef FirstType result;vDTLinuxÁªÃË };vDTLinuxÁªÃË templatevDTLinuxÁªÃË struct type,i>vDTLinuxÁªÃË {//·µ»ØÖµÎªÀàÐÍ£¬ÃüÃûΪresultvDTLinuxÁªÃË typedef typename type::result result;vDTLinuxÁªÃË };vDTLinuxÁªÃË //////////////////////////////////////////////////////////////////////vDTLinuxÁªÃË }//namespace pandaxcl{vDTLinuxÁªÃË #endif//CODE_NOTEvDTLinuxÁªÃË #if 0vDTLinuxÁªÃË vDTLinuxÁªÃË ´ÓÉÏÃæµÄmeta.hÎļþÖÐÎÒÃÇ»¹¿ÉÒÔ¿´³ö£¬LOOP¾²Ì¬Ñ»·´úÂëÀïÃæ±ÈǰһƪÎÄÕÂÖеÄvDTLinuxÁªÃË LOOPÑ»·¶àÁËһЩ¶îÍâµÄ´úÂ룬ÕâÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëµÄÁ¬½ÓµÄ£¬ÕâÖÖÁ¬vDTLinuxÁªÃË ½Óͨ³£ÊÇͨ¹ýº¯Êý²ÎÊýµÄÐÎʽʵÏֵġ£vDTLinuxÁªÃË#if 0vDTLinuxÁªÃË vDTLinuxÁªÃË ÕâÒ»Õ£¬ÎÒÃǽ«Òª¿ªÊ¼µÄÌÖÂÛC++ÀïÃæµÄ´úÂëÉú³É¼¼Êõ¡£ËµÆð´úÂëÉú³É¼¼Êõ£¬Êµ¼ÊÉÏÕâvDTLinuxÁªÃË ²¢²»ÊÇC++µÄרÀû£¬×÷ΪC++×Ó¼¯µÄCÓïÑÔÔç¾ÍÒѾʹÓÃÁËÒ»¶¨µÄ´úÂëÉú³É¼¼Êõ£¬Õâ¾ÍÊÇCºêvDTLinuxÁªÃË ¡£ÎÒÏëCºê´ó¼ÒÓ¦¸Ã·Ç³£ÊìϤÁ˰ɣ¬ÌرðÊÇÄܹ»ÊµÏÖ´ø²ÎÊýµÄºêʹµÃ´óÁ¿µÄ¿âÀûÓÃÕâÖÖ¼¼ÊõvDTLinuxÁªÃË À´Éú³ÉÄÇЩ¸ñÊ½ÖØ¸´µÄ´úÂ룬ÀýÈ磺΢ÈíµÄMFC¿â£¬¿çƽ̨µÄGUI¿âwxWidget£¬Boost¿âµÈµÈvDTLinuxÁªÃË ¶¼Ê¹ÓÃÁËCºê¡£ËäÈ»CºêÔÚÕâЩ¿âÀïÃæ°çÑÝÁ˷dz£ÖØÒªµÄ½ÇÉ«£¬²¢ÇÒÈÔ½«°çÑݷdz£ÖØÒªµÄ½ÇvDTLinuxÁªÃË É«£¬µ«ÊÇÒ²²»µÃ²»Ëµ£ºCºê´æÔÚןܴóµÄÎÊÌâ¡£×î»ù´¡µÄ¾ÍÊÇÀàÐͲ»°²È«ÐÔ£¬ÕâÒ²ÊÇC++ÀïvDTLinuxÁªÃË Ãæ³öÏÖÄ£°åÓïËØµÄÒ»¸ö±È½ÏÖØÒªµÄÔÒò¡£¸üÖØÒªµÄÊÇʹÓÃCºêÉú³ÉµÄ´úÂë½ö½öÖ»ÊÇʵÏÖÁ˼òvDTLinuxÁªÃË µ¥µÄ¸ñʽÌî¿ÕÄÜÁ¦£¬²¢²»Äܱí´ïÌØ¶¨µÄËã·¨¡£ÕýÊÇCºêµÄ±í´ïÉè¼ÆË¼ÏëµÄ²»×ãÏÞÖÆÁËCºêµÄvDTLinuxÁªÃË Ê¹Ó÷¶Î§¡£vDTLinuxÁªÃË vDTLinuxÁªÃË ËµÆðC++Ä£°åµÄ´úÂëÉú³ÉÄÜÁ¦£¬ËµÆðÀ´ÕâÒ²ÊÇÒ»ÖÖÇɺϣ¬×Ô´Ó90Äê´ú³õÆÚµÚÒ»¸öC++Ä£vDTLinuxÁªÃË °åÔª³ÌÐò£¨ÓÃÀ´ÔÚ±àÒëÆÚÊä³öÖÊÊý£©±»·¢ÏÖÒÔÀ´£¬C++ÃÔÃǶÔÄ£°åÔª³ÌÐòµÄÑо¿¾ÍÈÈÄÖÆðÀ´vDTLinuxÁªÃË ÁË£¬²¢³öÏÖÁË´óÁ¿µÄ¹ØÓÚC++Ä£°åÔª³ÌÐòµÄÎÄÏס£ÔÚÕâÀïÎÒËù½éÉܵÄÄ£°åÔª´úÂëÉú³É¼¼ÊõÖ÷vDTLinuxÁªÃË Òª²Î¿¼ÁË<>Ò»ÊéµÄGenScatterHierarchy½á¹¹£¬²¢¶ÔÕâÖֽṹ½øÐÐÁËvDTLinuxÁªÃË À©Õ¹Ó¦Ó㬲ÉÓÃÁËÇ°ÃæµÄLOOP¾²Ì¬Ñ»·ÊµÏÖ¶ÔÕâÖֽṹÉú³ÉµÄ´úÂëµÄ²Ù×÷£¬´Ó¶øÍê³ÉÁËÒ»vDTLinuxÁªÃË ¸öC++ÆÕͨÀàµÄ×Ô¶¯Éú³É¹ý³Ì¡£ËùνµÄC++ÆÕͨÀàÖ¸µÄÊÇÒ»°ãµÄÊÖ¹¤Ö±½Ó±àдµÄÒ»¸öÀ࣬ÕâvDTLinuxÁªÃË ÖÖÀàͨ³£°üº¬³ÉÔ±±äÁ¿£¬Éú³É³ÉÔ±±äÁ¿µÄ¹ý³Ì¿ÉÒÔÓÉGenScatterHierarchy½á¹¹Íê³É£¬µ«ÊÇvDTLinuxÁªÃË ½ö½öÓÐÁ˳ÉÔ±±äÁ¿»¹²»ÄܳÉΪһ¸öC++À࣬»òÐí³ÉΪ½á¹¹Ìå¸üºÏÊÊ£»ÁíÍâÆÕͨÀàÒ»°ã»¹°üº¬vDTLinuxÁªÃË Á˳ÉÔ±º¯Êý£¬ÕâÖÖ³ÉÔ±º¯ÊýµÄ×Ô¶¯Éú³É¾Í²»ÄÜͨ¹ýLoki¿âÀ´ÊµÏÖ×Ô¶¯Éú³ÉÁË£¬ËäÈ»Loki¿âvDTLinuxÁªÃË µÄGenLinearHierarchy½á¹¹¿ÉÒÔÉú³Éº¯Êý½Ó¿Ú£¬µ«ÊǺ¯ÊýÌåÀïÃæµÄÄÚÈݾͲ»Äܹ»ËæÐÄËùÓûvDTLinuxÁªÃË µÄ±àдÁË¡£ÕâºóÃæµÄÒ»µãÕýÊÇÔÚ±¾ÎÄÖн«Òª½øÐÐÏêϸÌÖÂ۵ġ£vDTLinuxÁªÃË vDTLinuxÁªÃË ºÃÁË£¬ÏÖÔÚÎÒÃÇÀ´·ÖÎöÇ°ÃæµÄÕ½ÚÖнéÉܵÄÄ£°åÔª¼¼ÊõÖÐÒѾÔ̺µÄ´úÂëÉú³É¼¼Êõ¡£vDTLinuxÁªÃË Êµ¼ÊÉÏLOOP¾²Ì¬Ñ»·ÖÐÒѾʵÏÖÁ˾²Ì¬º¯ÊýµÄ×Ô¶¯Éú³É£¬Ò²¾ÍÊÇ˵£¬±àÒëÆ÷ÔÚ±àÒëµÄʱºòvDTLinuxÁªÃË È·È·ÊµÊµÊÇ¿´µ½ÁËÑ»·Ëù²úÉúµÄËùÓеľ²Ì¬º¯Êý£¬¶ø²¢²»ÊÇÔËÐеÄʱºò½øÐеĺ¯ÊýµÝ¹éµ÷ÓÃvDTLinuxÁªÃË ¡
|