草庐IT

char16-t

全部标签

c++ - 如何专门化模板函数以让它接受将 char 数组作为参数传递?

//problem.cpp:#includetemplatevoidfunc(constT&v);intmain(){inti;floatf;char*cp;charca[4];func(i);func(f);func(cp);func(std::string("std::string"));func(ca);func("string_literal");return0;}//problem2.cpp#includetemplatevoidfunc(constT&v);//undefinedreferenceto`voidfunc(intconst&)'templatevoidfunc

c++ - 16 字节长的整数类型

我正在64位上使用GCC编译C++程序-机器/操作系统/(将-m64选项传递给g++)。正如预期的那样,sizeof(longdouble)==16–我想知道整数是否有16字节长的标准类型?附言__int128_t是我理解的模拟标准类型的人工扩展。除此之外,我没有找到任何东西。 最佳答案 不,只有char、unsignedchar和signedchar有保证的大小,它们是1:5.3.3Sizeof[expr.sizeof]1Thesizeofoperatoryieldsthenumberofbytesintheobjectrepre

c++ - Clang 错误,没有可行的转换

我正面临clang3.1的问题。GCC4.2不会出现此特定问题。以下是发生错误的示例:#include#include#include#includetypedefunsignedshortchar16_t;typedefchar16_tTCHAR;typedefstd::basic_string,std::allocator>wstringT;templateinlinewstringTMyTestFunction(constT&source){std::wstringstreamout;out错误信息指出:Noviableconversionfrom'__string_type'(

c++ - MFC C++ 如何在 MessageBox 中显示一个 const char 值?

我希望标题足够好,可以帮助解释需要什么。在解决了这么多之后,我的项目应该完成了。当我这样做的时候chare[1000]="HELLO";CStringmsg;msg.Format(_T("%s"),e);MessageBox(msg);消息框只是向我显示诸如“㹙癞鞮㹙癞鞮”之类的随机词,而不是我想要的“HELLO”。我该如何解决这个问题??帮助将不胜感激。谢谢你 最佳答案 首先,您真的以这种方式使用MessageBoxAPI吗?检查MSDNDocumentation.现在回答你的问题,chare[1000]="HELLO";CStr

c++ - strcpy c++ 无法从字符串 char* 转换参数 1

我正在尝试将txt文件*中的单词放入一个字符串数组中。但是strcpy()有错误。它说:'strcpy':cannotconvertparameter1from'std::string'to'char*'。这是为什么?难道不能在C++中创建这样的字符串数组吗?#include#include#includeusingnamespacestd;voidArrayFillingStopWords(string*p);intmain(){stringp[319];//lekseisstostopwordsArrayFillingStopWords(p);for(inti=0;i

c++ - 改变RGBA颜色后OpenGL以16种颜色绘制

当我尝试在OpenGL中使用RGBA颜色绘制二维圆时,它使用最接近的16色调色板颜色绘制它。这是我使用的代码。//InitcanvasglMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(0,Screen.Width(),Screen.Height(),0,0,1);glMatrixMode(GL_MODELVIEW);glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);glEnable(GL_COLOR_MATERIAL);//BackgroundglClearColor(0.0,0.0

c++ - 将 unsigned char * 图像转换为 OpenCV Mat 的问题

我在将来自图像采集卡的图像数据解析为OpenCVMat格式时遇到问题。我可以从我的EDT图像采集卡中获取图像数据作为无符号字符指针,并将其传递给新创建的Mat,但我在此过程中丢失了有值(value)的数据,并且不确定如何修复它。我的相机是红外相机,输出12位320x256拜耳图像。我相当有信心我对EDT的API的使用是正确的。使用EDT的软件“pdvshow”,我可以按预期查看图像数据,但是当我将返回的帧从EDT的API转换为OpenCVMat并显示它时,我丢失了大量数据。当我将Mat设置为CV16UC1时,框架接近黑色,当Mat设置为CV8UC1时,框架显示大部分数据但看起来非常颗粒

c++ - 强制在堆栈中而不是全局分配 char[] (string)

我试图强制编译器在堆栈中分配内联字符串:此代码分配.rdata部分中的字符串:foo("test");当这段代码在栈中分配字符串时:charszt1[]="test1";foo(szt1);这正是我想要强制执行的。如何强制编译始终在堆栈中分配数组?我正在使用gcc。谢谢 最佳答案 没有好的方法可以做到这一点,而且可能没有太多好的理由需要这种行为。如果您不希望该字符串存在于数据段中,最接近的做法是分配一个char的自动数组并将字符分配给它,一次一个。charhello[6]={};hello[0]='h';hello[1]='e';h

c++ - 为什么使用reinterpret_cast 将char* 转换为结构似乎可以正常工作?

人们说相信reinterpret_cast将原始数据(如char*)转换为结构是不好的。例如,对于结构structA{unsignedinta;unsignedintb;unsignedcharc;unsignedintd;};sizeof(A)=16和__alignof(A)=4,完全符合预期。假设我这样做:char*data=newchar[sizeof(A)+1];A*ptr=reinterpret_cast(data+1);//+1istoensureitdoesn'tpointsto4-bytealigneddata然后复制一些数据到ptr:memcpy_s(sh,sizeo

c++ - 为什么 static const char * template struct 成员没有初始化

我有一些C++11模板代码,我正在尝试移植到VisualC++Compiler2015。原始代码工作得很好,但是我需要重写它以解决constexpr的问题。Theoriginalcode(simplifiedexample)#includestructString{staticconstexprconstchar*value{"STRING"};};templateclassDerived{public:staticconstexprconstchar*value{Base::value};};templatestructFoo{staticconstexprconstchar*val