我是靠谱客的博主 落后哈密瓜,最近开发中收集的这篇文章主要介绍利用C++ Lambda优化多分支赋值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

利用C++ Lambda优化多分支赋值

我们经常需要根据不同的条件分枝来获取一个变量一共后续使用,

  • 通常我们会这么做。
//...
Type res;
switch (val) {
case val0: res = Type(...); break;
case val1: res = Type(...); break;
case val2: res = Type(...); break;
case val3: res = Type(...); break;
..
}
...
...
//...

上述代码需要执行一次默认构造,一次赋值,效率不高,就算有move-assignment的加持,其对默认构造的要求也是一个包袱,对于不支持默认构造的类型很难以此形式解决需求。

  • 那么,如果把上述代码写成一个函数,直接在对应的分支return对应的对象,在结合C++2.0的编译器对return-by-value的优化,再结合使用inline关键字,也可以实现较好的效果,当然要多写一个函数,如果仅是用一次,或是这样的需求有很多(要写很多函数),很麻烦,也有点不利于代码组织。结合这个利用函数返回值的思路,借助Lambda表达式便可以灵活的解决这个问题。
//...
Type res = [&val] {
switch (val) {
case val0: return Type(...); break;
case val1: return Type(...); break;
case val2: return Type(...); break;
case val3: return Type(...); break;
..
}
}();
...
...
//...

最后

以上就是落后哈密瓜为你收集整理的利用C++ Lambda优化多分支赋值的全部内容,希望文章能够帮你解决利用C++ Lambda优化多分支赋值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部