草庐IT

c++ - 从 std::tuple<some_types...> 开始创建子元组

让我们假设一个std::tuple给出。我想创建一个新的std::tuple其类型是在[0,sizeof...(some_types)-2]中索引的类型.例如,假设起始元组是std::tuple.我想获得一个定义为std::tuple的子元组.我对可变参数模板很陌生。作为第一步,我尝试写一个struct负责存放不同类型的原件std::tuple目的是创建一个新的同类元组(如std::tuplenew_tuple)。templatestructtype_list;templatestructtype_list:publictype_list{typedefTtype;};template

c++ - 为什么 std::function 不能接受推导类型作为其模板参数?

#includeusingnamespacestd;templatevoidf1(CharType*str,functionfn_filter){}templatevoidf2(CharType*str,functionfn_filter){}voidf3(char*str,charc){autofn_filter=[=](chare)->bool{returne==c;};f1(str,fn_filter);//errorC2784f2(str,fn_filter);//OK}intmain(){f3("ok",'k');}//errorC2784:'voidf1(CharType*

C++ 错误 : deduced conflicting types for parameter 'T' string vs const char *

因此,我正在为双端队列容器编写一个简单的模板化搜索函数。这是代码:templatevoidsearchInDequeFor(std::dequeDeque,TsearchValue){for(constauto&element:Deque){if(Deque.empty()){std::cout下面是我在main中调用函数的方式:dequemyDeque={"apple","banana","pear","blueberry"};searchInDequeFor(myDeque,"pear");这是我遇到的错误:candidatetemplateignored:deducedconfl

c++ - 如何处理为相同输入数据类型返回不同数据类型的 api?

如何处理为相同输入数据类型返回不同数据类型的api?看下面的例子,apicall应该根据输入属性返回日期或字符串:#include#includeusingnamespacestd;????apicall(stringdatatype,stringattribute){//code}intmain(intargc,char**argv){stringdatatype="Thomas"stringattribute="bithday"cout什么可以代替????(apicall返回数据类型)以及如何处理这些情况?我正在尝试理解这些概念,因为我迄今为止的经验是使用ducktyped脚本语言

c++ - 数据类型的名称从何而来?

为什么是一点,就叫一点。为什么8位是一个字节?是什么让人们称16位为Word,等等。他们的别名是在哪里以及为什么出现的?我希望其他人包括基本的ASM之类的东西类型,然后分支到C/C++然后转到SQL等等的数据类型。1位Bit-binaryUnitBool-以bool逻辑的发明者George的名字命名Boole.4位半字节-字节大小的一半。8位字节-Coinedfrom"bite"butrespelledtoavoidaccidentalmutationto"bit".查尔八位字节-Isagroupingofeightbits,fromtheLatin"octo"meaning"eigh

c++ - long double C++的范围是多少

这个问题在这里已经有了答案:longdoublevsdouble(3个答案)关闭9年前。C++中longdouble的取值范围是多少?

c++ - 为什么一个类在成员函数定义中可以在自身内部使用,但作为成员使用时却被认为是不完整的?

classA{private:Aa;};为什么类中的A是不完整的类型?classA{public:A&operator=(Aa){return*this;}};operator=的参数A不是不完整类型吗?为什么上面的代码可以编译? 最佳答案 因为在类定义的空白处使用A和在成员函数定义的参数列表中使用它是有区别的。这是两个不同的范围。[C++11:9.2/2]:Aclassisconsideredacompletely-definedobjecttype(3.9)(orcompletetype)attheclosing}ofthecl

c++ - boost .python : Argument types did not match C++ signature

我在python中调用C++函数时遇到一个奇怪的问题。我公开了一个我想从中调用函数的类:class_>("MyClass",init())//....def("someFunc",&MyClass::someFunc);我得到一个std::shared_ptr来自另一个类的成员变量,该类通过.def_readonly(...)公开当我尝试调用该函数时,出现以下错误:File"pytest.py",line27,intest_funccu.someFunc("string")Boost.Python.ArgumentError:PythonargumenttypesinMyClass.s

c++ - 是否可以在 C++ 中创建方法调用调度程序?

考虑以下代码:structX{voidMethodX(){...}};structY{voidMethodY(){...}};voidtest(){Xx;Yy;Dispatcherd;d.Register("x",x,&X::MethodX);d.Register("y",y,&Y::MethodY);d.Call("x");d.Call("y");}问题是如何实现Dispatcher。我不介意X和Y可能继承自某些东西,但Dispatcher应该允许更多的客户(不仅是X和Y)。如果可能的话,我想避免使用void*指针:) 最佳答案

c++ - 获取给定对象的类型说明符

我正在尝试编写一个模板函数,它将接受一个STL容器并显示其中出现的所有元素以及它们出现的次数。我打算使用map,遍历容器并添加一个新元素(如果它不存在)或增加该元素的出现次数。声明:templatevoidfindOccurrences(constContainer_t&inContainer);我的问题是:我能否以某种方式获取容器所含元素的类型说明符?因此,当我创建map时,键值将是inContainer中的元素。像这样的东西:mapoccurrences;或者我是否必须将我的模板更改为如下内容:templatevoidfindOccurrences(constContainer_t