相关文章  
  • 浅谈如何利用BartPE创建PE工具盘
  • Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
  • 在完成所有绑定后仍然有许多要进行的操作
  • 在你的企业中管理Windows和应用程序
  • 动态加载用户控件的组件
  • 小心GDI+资源泄漏 -- 猜想 测试 应对全过程
  • 定时检测邮件并且自动转发的例子
  • Internet Explorer 中编辑 OLE 嵌入文档
  • 教你通过 Emit 实现动态生成一个类
  • 如何才能在10046event自由漫步
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    浅谈 C# 中的代码协同 (Coroutine) 执行支持4

    img] const
      {
      elem *= Factor;
      }
      };
      
      int main( [img]/images/wink.gif[/img]
      {
      using namespace std;
      
      vector v1;
      
      //...
      
      // Using for_each to multiply each element by a Factor
      for_each ( v1.begin ( [img]/images/wink.gif[/img] , v1.end ( [img]/images/wink.gif[/img] , MultValue ( -2 [img]/images/wink.gif[/img] [img]/images/wink.gif[/img];
      }
      
      虽然 STL 较为成功的通过迭代器、算法和谓词,将此协同执行逻辑中的行为和控制分离,谓词表现行为(MultValue、迭代器(v1.being(), v1.end())表现控制状态、算法表现控制逻辑(for_each),但仍然存在编写复杂,使用麻烦,并且语义不连冠的问题。
      一个缓解的方法是将谓词的定义与控制部分合并到一起,就是类似 boost::Lambda 的实现思路:
      以下内容为程序代码:
      
      for_each(v.begin(), v.end(), _1 = 1);
      
      for_each(vp.begin(), vp.end(), cout << *_1 << ' ');
      
      通过神奇的模板和宏,可以一定程度降低编写独立谓词来

    页码:[1] [2] [3] [4] [5] [6] [7] [8]4页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved