草庐IT

libboost_serialization-vc

全部标签

c++ - 为什么 VC++ 无法优化整数包装器?

在C++中,我试图围绕64位整数编写一个包装器。我的期望是,如果编写正确并且所有方法都是内联的,那么这样的包装器应该与真实类型一样高效。对此question的回答onSO似乎符合我的预期。我写这段代码是为了测试我的期望:classB{private:uint64_t_v;public:inlineB(){};inlineB(uint64_tv):_v(v){};inlineB&operator=(Brhs){_v=rhs._v;return*this;};inlineB&operator+=(Brhs){_v+=rhs._v;return*this;};inlineoperatorui

c++ - 如何在 VC++ 中给一个标识符下毒?

函数中毒是C++中非常有用的技术。一般来说,它指的是使一个功能无法使用,例如如果您想禁止在程序中使用动态分配,您可以“中毒”malloc函数,使其无法使用。“中毒”标识符意味着在“中毒”之后对标识符的任何引用都是硬编译器错误例如(参见现场演示here)#include#include#pragmaGCCpoisonmallocintmain(){int*p=(int*)malloc(sizeof(int));//compilererroruseofpoisonedfunctionmalloc*p=3;std::cout我发现这种技术对于防止在C++中滥用保留字非常有用。例如:#incl

c++ - 打包位域时 VC++ 在做什么?

为了澄清我的问题,让我们从一个示例程序开始:#include#pragmapack(push,1)structcc{unsignedinta:3;unsignedintb:16;unsignedintc:1;unsignedintd:1;unsignedinte:1;unsignedintf:1;unsignedintg:1;unsignedinth:1;unsignedinti:6;unsignedintj:6;unsignedintk:4;unsignedintl:15;};#pragmapack(pop)structccc;intmain(intargc,char**argv){

c++ - GLFW 的 VC++ LNK 错误

我正在使用VC++2010来处理一些OpenGL。然而,它正在成为一种痛苦。我不断收到错误代码。这是我正在使用的代码://Includestandardheaders#include#include//IncludeGLEW#include//IncludeGLFW#include//IncludeGLM#includeusingnamespaceglm;intmain(void){//InitialiseGLFWif(!glfwInit()){fprintf(stderr,"FailedtoinitializeGLFW\n");return-1;}glfwOpenWindowHint

c++ - 在 VC++ 中步入 MACRO

我正在调试一个源代码,它有很多大的#define'dMACRO例程。我对进入它们很感兴趣,但我想,VC++不允许进入功能......所以,我正在将它们转换为函数,但这对我来说变得越来越困难有没有办法进入宏例程?尤其是在VC++中?PS:如果gcc编译器支持进入MACRO,我可以将整个代码移植到gcc 最佳答案 除了以上所有正确答案外:我平时做的是混合显示(C+汇编)。这显示了真正发生的事情。即使您不是底层程序集的专家,它也可以让您了解会发生什么(即它是一个微不足道的替换还是一个复杂的循环)。它还将提供更多进入功能的机会。例如,如果您

c++ - emplace_back 和 VC++ 的挫败感

我正在使用VisualStudio2012,同时使用默认编译器和NovCTP编译器进行尝试,下面显示了我的问题:structdoesCompile{intmA,mB,mC,mD,mE;doesCompile(inta,intb,intc,intd,inte):mA(a),mB(b),mC(c),mD(d),mE(e){}};structdoesNotCompile{intmA,mB,mC,mD,mE,mF;doesNotCompile(inta,intb,intc,intd,inte,intf):mA(a),mB(b),mC(c),mD(d),mE(e),mF(f){}};int_tm

序列化异常 : can't locate argument-less serializer

我正在创建一个Kotlin多平台库;实际上我有3个模块(common、jvm和js),在我得到的类路径中:classpath"org.jetbrains.kotlin:kotlin-serialization:${versions.kotlin}"在我的模块中我得到了:common:"org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:${versions.kotlinSerialization}"jdk:"org.jetbrains.kotlinx:kotlinx-serialization-runtime:${ver

序列化异常 : can't locate argument-less serializer

我正在创建一个Kotlin多平台库;实际上我有3个模块(common、jvm和js),在我得到的类路径中:classpath"org.jetbrains.kotlin:kotlin-serialization:${versions.kotlin}"在我的模块中我得到了:common:"org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:${versions.kotlinSerialization}"jdk:"org.jetbrains.kotlinx:kotlinx-serialization-runtime:${ver

c++ - 我安装了 libboost 但无法链接到它

我已经通过apt-get安装了libboost-dev,它放在/usr/lib中。/usr/lib$ls|grepboostlibboost_filesystem.so.1.46.1libboost_iostreams.so.1.46.1libboost_serialization.so.1.46.1libboost_system.so.1.46.1libboost_thread.so.1.46.1libboost_wserialization.so.1.46.1但是当我尝试编译使用boost_thread的源代码时,我仍然遇到错误。$g++tcp_echo.cpp-otcp_echo

c++ - fatal error LNK1104 : cannot open file 'libboost_regex-vc90-mt-gd-1_42.lib'

我正在尝试在我的程序中使用boost正则表达式问题是我得到这个错误......我所做的唯一安装步骤是添加:“C:\ProgramFiles\boost\boost_1_42”进入附加包含目录...我正在使用VS2008...尝试实现这个:#include#include#includeusingnamespacestd;intmain(){std::strings,sre;boost::regexre;boost::cmatchmatches;while(true){cout>sre;if(sre=="quit"){break;}cout>s;try{//Assignmentandco