考虑到C++在C++11中获得了lambdas,以后还会有类似于高级函数库的LINQ吗?还是已经有这样一个库用于生产质量代码?
显然,我并不期望C++中基于SQL类表达式树的LINQ查询语法。我说的是以兰伯达为基础的。因此,在C++'11中不需要任何新的语言特性,只要一个库就可以了。
发布于 2011-08-16 10:33:42
在标准库中已经得到了支持,并且从一开始就一直支持它。语法只是有点不同-它从来没有打算模仿SQL,而且里面有太多的迭代器。你不需要太大的麻烦就能让它更让人想起。
编辑:当我试图在没有太大麻烦的情况下让它更让人联想起来的时候,我认为它实际上可能是一个很大的麻烦。然而,这仍然是完全可能的。
发布于 2011-08-16 10:02:28
注意:对于C++2011,没有这样的功能。幸运的是,下一个C++应该包括一个文件系统库(参见boost:: filesystem ),这样您就可以猜到这样的数据库库不会很快标准化。
关于这个库,关于boost邮件列表有几个(以及最近的)讨论。有几个人指出了像套接字和CPPDB这样的类似助推的潜在库。
而且,我不认为lambda能够帮助实现这样的功能。Lambda仍然是代码,而不是EDSL结构。
发布于 2011-08-16 10:38:09
这是ODB,这很有趣。
请参阅ODB维基百科条目中的示例代码,它搜索所有名为Doe < 30岁的人(年龄和最后是DB列,直接映射到类,这是由ODB编译器完成的,它始终保持自动生成的类与DB模式保持同步,而不必修改DB->代码映射定义文件或程序集)。我喜欢它,因为它必须维护一个实体框架程序集。
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 ();https://softwareengineering.stackexchange.com/questions/101382
复制相似问题