草庐IT

tuple-like

全部标签

c# - 在 C# 中使用带有 LIKE 的 Oracle 绑定(bind)变量

作为停止使用动态SQL生成并鼓励使用绑定(bind)变量的努力的一部分,我遇到了一些问题。我正在使用OracleDataProvidersfor.NET从ASP.NET页面查询Oracle9i数据库查询是sql="SELECTsomedataFROMsometableWHEREmachine=:machineName";我定义Oracle参数如下OracleParameterparameter=newOracleParameter();parameter.ParameterName="machineName";parameter.OracleDbType=OracleDbType.Va

c++ - std::tuple 与 std::array 作为 std::vector 的项目

我有这个案例:std::vectorv;什么最适合这里?std::tuple解决方案:std::vector>v;std::array解决方案:std::vector>v;为什么?编辑(用例):很抱歉之前没有提到这一点。我将按如下方式使用它:for(constauto&item:v){some_function(item[0],item[1],item[2],item[3]);//ortupleequivalent}当然我需要保存它们,因为计算4个整数不是我想要一次又一次重复的事情。 最佳答案 对于这个具体案例,我不同意这些评论。对

c++ - 为什么这段涉及 std::tuple 隐式构造的代码会在 c++11/14 模式下编译?

根据http://en.cppreference.com/w/cpp/utility/tuple/tuple,std::tuple在C++17之前不能隐式构造。他们甚至举了一个例子来证明它:std::tuplefoo_tuple(){return{1,-1};//ErroruntilC++17returnstd::make_tuple(1,-1);//Alwaysworks}然而,同时使用gcc6.2和clang3.8.1我可以在C++11和C++14模式下干净地编译这段代码:piotrek@piotrek-Inspiron-5423:~/test$g++-vUsingbuilt-in

c++ value_type 不适用于 std::map 中的 std::tr1:tuple

以下代码片段适用于VisualStudio2008,但不适用于VisualStudio2010。templatestructMyStruct{typedefstd::mapKeys;MyStruct(){}voidset(TKey&key){#if1//ThisworkswithVS2008butnotwith2010keys_.insert(typenameKeys::value_type(key,1));#else//ThisworkswithVS2008andVS2010keys_.insert(std::pair(key,1));#endif};private:Keyskeys

C++ 如何基于部分特化创建 std::tuple 类型?

我有一个带有整数参数的模板,但基本模板被static_assert()禁用了像这样。(我只想要一些特定的特殊化形式;我希望禁止传递给模板的任何参数,除了某些参数)templatestructItemTemplate{static_assert(item_id==-1,"Cann'tuseunspecializedItemTemplate!");staticItemIDid{std::numeric_limits::max()};//...};我也有这个模板的几个特化表格(我经常添加或删除其中的一些)templatestructItemTemplate{staticconstexprIt

c++ - STL-Like 范围,如果我这样做会出什么问题?

我正在编写(作为自学练习)一个简单的类STL范围。它是一个不可变的随机访问“容器”。我的范围,只保留它的起始元素,元素个数和步长(两个连续元素的差值):structrange{...private:value_typem_first_element,m_element_count,m_step;};因为我的范围不包含元素,所以它使用以下方法计算所需的元素://Inthestandards,theoperator[]//shouldreturnaconstreference.//BecauseRangedoesn'tstoreitselements//internally,weretur

c++ - 为什么 std::tuple 的 get helper 返回右值引用而不是值

如果您查看get,std::tuple的辅助函数,您会注意到以下重载:templateconstexprstd::tuple_element_t>&&get(tuple&&t);换句话说,当输入元组本身是一个右值引用时,它返回一个右值引用。为什么不按值返回,在函数体中调用move?我的论点如下:get的返回将绑定(bind)到一个引用或一个值(我想它可以绑定(bind)到任何东西,但这不应该是一个常见的用例)。如果它绑定(bind)到一个值,那么move构造无论如何都会发生。因此,按值(value)返回不会有任何损失。如果你绑定(bind)到一个引用,那么返回一个右值引用实际上是不安全

c++ - 狮身人面像 + 氧气 + 呼吸 : How do I get a documentation like the one of Google's Ceres Solver?

我正在从事一个C++项目,并且真的爱上了Sphinx文档构建系统。我设法设置了Doxygen和Breathe来生成C++描述并将其提供给Sphinx。我不明白Google的CeresSolver文档是如何完成的。他们的APIreference例如包含类名后跟大量文本,有时甚至包含代码块示例,如上一个链接所示。有没有办法在源文件中编写Doxygen文档并实现这一点?另一个例子是thisclassdocumentation,其中有大约两页的文字。我以某种方式怀疑所有这些文本是否作为Doxygen注释位于源文件中。我感觉所有额外的文本都写在文档的重组文本源中,而在c++源文件中什么也没有。但

C++14 auto lambda 可以接受 Obj<std::tuple<void>>——但模板函数不能?

下面是一个程序,它完全演示了我所看到的问题。首先,我从一个使用其他类型的分组定义的对象开始,我开始使用std::tuple来管理分组。templateclassobject;templateclassobject>{};我打算这些对象能够具有散布在“包”中的类型void。我已经意识到无法“实例化”这种类型的元组(参见Voidtypeinstd::tuple)我想传递这些对象,也许复制/移动它们......它们的数据成员都不是这些类型的元组。事实上,我可以使用上面的空对象定义重现该问题。我可以让它工作,使用类似的东西:templatestructTGrp{};templateclasso

c++ - 为什么 std::tuple 分解为右值引用

为什么std::tuple分解为右值引用?#includetemplatestructsame_type;templatestructsame_type{};voidfoo(){std::tupletuple(1,'a',2.3,true);auto[i,c,d,b]=tuple;same_type{};same_type{};same_type{};same_type{};}使用gcctrunk编译没有错误。我本来期望的是普通类型,例如same_type{};Liveexample 最佳答案 海湾合作委员会错误。decltype应