草庐IT

function_char-length

全部标签

c++ - 为什么 std::function 没有 function_type 或等效的成员类型?

来自here在我看来std::function没有function_type或等效的成员类型导出用于初始化它的实际类型。它有result_type,argument_type,以及first_argument_type和second_argument_type,但与上述类型完全不同。为什么它不提供这种类型作为其接口(interface)的一部分?肯定会有一个很好的理由,但我不知道是什么原因,所以我很想知道。因为我知道第一个问题是为什么需要它,好吧,想象一下我想做类似std::is_same::value的事情在sfinae评估中检查它们的基础类型是否相同,只要符号相同,它们包含不同的功

c++ - Python ctypes : initializing c_char_p()

我写了一个简单的C++程序来说明我的问题:extern"C"{inttest(int,char*);}inttest(inti,char*var){if(i==1){strcpy(var,"hi");}return1;}我把它编译成一个so.从python我调用:fromctypesimport*libso=CDLL("Debug/libctypesTest.so")func=libso.testfunc.res_type=c_intforiinxrange(5):charP=c_char_p('bye')func(i,charP)printcharP.value当我运行它时,我的输出

C++ 模板 : no matching function for call

考虑以下代码templateTexponentiel(Tval,unsignedn){Tresult=one;unsignedi;for(i=0;i(2.0f,3);cout编译器告诉我这个没有匹配函数来调用'exponentiel(float,int)'为什么?奇怪的是exponentiel与int一起使用。 最佳答案 问题出在模板参数列表中的Tone和1.0上。您不能拥有浮点类型的非类型模板参数,也不能将浮点值作为模板参数传递。这是不允许的(据我所知,没有充分的理由不允许这样做)。g++在这里的错误信息是相当无用的。Visual

c++ - char 到大写赋值段错误

为了进一步了解C++的内部工作原理,我决定编写自己的字符串类。但是我被困在.toUpper()和.toLower()函数上。这是我的代码。Text&toUpper(){char*c=this->str;while(*c!=0,c++){if((*c>='a')&&(*c我已将导致段错误的行隔离到*c=*c-32但我不明白为什么这会导致问题。我尝试了(char)(*c-32)但这没有用。这也不是一个边界问题,因为没有任何输出。有什么想法吗?更新:我的构造函数Text(char*str){this->str=str;this->updateLength();//glorifiedstrle

C++ 从 LPCTSTR 转换为 const char *

我在MSVC2008MFC中遇到了这个问题。我正在使用unicode。我有一个函数原型(prototype):MyFunction(constchar*)我称它为:MyfunFunction(LPCTSTRwChar).error:CannotConvertParameter1From'LPCTSTR'to'constchar*'如何解决? 最佳答案 由于您使用的是MFC,您可以轻松地让CString自动将char转换为TCHAR:MyFunction(CString(wChar));无论您的原始字符串是基于char还是基于wcha

c++ - g++ "declaration of "运算符<<"as non-function"

我们有一个自定义的Logging类,它在VisualStudio2010中编译良好,但在Linux上使用g++编译时会抛出错误。我们收到的错误消息如下:Logger.hpp:84:error:declarationof"operator各自的代码行如下:/*:84*/inlineLogger&operatoroutput){if(this->loggingEnabled())std::coutoutput){if(this->loggingEnabled())std::cout>&(*StdEndl)(std::basic_ostream>&);inlineLogger&operato

c++ - 如何对 vector <char*> 进行排序?

#includeboolcomparisonFunc(char*c1,char*c2){returnstrcmp(c1,c2)?0:1;}vectormyVec;vector::iteratoritr;sort(myVec.begin(),myVec.end(),comparisonFunc)这是正确的还是有更好的方法? 最佳答案 std::sort需要一个“小于”谓词。您应该像这样实现您的comparisonFunc():boolcomparisonFunc(constchar*c1,constchar*c2){returnstr

c++ - 缺少关于 "int main(int argc, char* argv[])"的知识

我是一名物理学家,通常我只想完成计算,这就是我真正需要的。不过我一直在用intmain(intargc,char*argv[])非常令人高兴的是二进制文件在我没想到的级别上变得灵活,即初始化变量~$./program.exeabc(a,bandcarenumbersinthiscase,notlettersok?)所以问题是*如何在不使用文件的情况下以这种方式(或其他方式)“解析”或“传输”事物?*示例:假设“a.exe”给出了一组“X-Y”点(就像在电子表格上一样),我要将其插入“b.exe”。或者说我使用bash/awk脚本来格式化“a.exe”的输出格式,以便在gnuplot上绘

c++ - 如何将 char 数组放入 std::string

我分配了一个char数组然后我需要将它作为一个字符串返回,但我不想复制这个char数组然后释放它的内存。char*value=newchar[required];f(name,required,value,NULL);//fillthearraystrResult->assign(value,required);delete[]value;我不想像上面那样做。我需要将数组放在std字符串容器中。我该怎么做?编辑1:我知道我不应该这样做,并且该字符串不是为此目的而设计的。MB有人知道我可以使用的char数组的另一个容器实现吗? 最佳答案

c++ - 如何将 unsigned int 放入 char 数组并将其提取回来

有人可以解释为什么这不起作用吗?我正在尝试将一个unsignedint放入一个char缓冲区,然后将其取回另一个unsignedint。1#include2#include3intmain(){4unsignedinttester=320;5charbuffer[512];6memset(buffer,0,512);7memcpy(buffer,&tester,sizeof(unsignedint));8/*buffer[0]|=tester;9buffer[1]|=(tester>>8);10buffer[2]|=(tester>>16);11buffer[3]|=(tester>>