首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否会有任何官方的LINQ,如C++的基于lambda的库?

是否会有任何官方的LINQ,如C++的基于lambda的库?
EN

Software Engineering用户
提问于 2011-08-16 05:45:08
回答 3查看 2.3K关注 0票数 4

考虑到C++在C++11中获得了lambdas,以后还会有类似于高级函数库的LINQ吗?还是已经有这样一个库用于生产质量代码?

显然,我并不期望C++中基于SQL类表达式树的LINQ查询语法。我说的是以兰伯达为基础的。因此,在C++'11中不需要任何新的语言特性,只要一个库就可以了。

EN

回答 3

Software Engineering用户

发布于 2011-08-16 10:33:42

在标准库中已经得到了支持,并且从一开始就一直支持它。语法只是有点不同-它从来没有打算模仿SQL,而且里面有太多的迭代器。你不需要太大的麻烦就能让它更让人想起。

编辑:当我试图在没有太大麻烦的情况下让它更让人联想起来的时候,我认为它实际上可能是一个很大的麻烦。然而,这仍然是完全可能的。

票数 2
EN

Software Engineering用户

发布于 2011-08-16 10:02:28

注意:对于C++2011,没有这样的功能。幸运的是,下一个C++应该包括一个文件系统库(参见boost:: filesystem ),这样您就可以猜到这样的数据库库不会很快标准化。

关于这个库,关于boost邮件列表有几个(以及最近的)讨论。有几个人指出了像套接字CPPDB这样的类似助推的潜在库。

而且,我不认为lambda能够帮助实现这样的功能。Lambda仍然是代码,而不是EDSL结构。

票数 1
EN

Software Engineering用户

发布于 2011-08-16 10:38:09

这是ODB,这很有趣。

请参阅ODB维基百科条目中的示例代码,它搜索所有名为Doe < 30岁的人(年龄和最后是DB列,直接映射到类,这是由ODB编译器完成的,它始终保持自动生成的类与DB模式保持同步,而不必修改DB->代码映射定义文件或程序集)。我喜欢它,因为它必须维护一个实体框架程序集。

代码语言:javascript
复制
  transaction t(db.begin ());

  result r(db.query<person>(query::last == "Doe" && query::age < 30));

  for (result::iterator i (r.begin ()); i != r.end (); ++i)
  {
    cout << "Hello, " << i->first () << endl;
  }

  t.commit ();
票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/101382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档