草庐IT

可移植

全部标签

c++ - 像数组一样对待 std::vector 是否可移植

这个问题在这里已经有了答案:Canstd::vectorbetreatedlikeanarray(1个回答)关闭9年前。我看到我的团队中有人编写这样的代码。我个人认为这不是可移植的,因为vector可以以完全不同的方式实现。我说的对吗?vectora;a.push_back(1);a.push_back(2);a.push_back(3);int*b=&a[0];std::cout 最佳答案 该代码是正确的。存储在std::vector中的元素保证从C++03开始​​连续存储。这是当前标准C++草案的相关部分N3797(23.3.6

c++ - 我将如何在 C++03 中可移植地实现对齐的堆栈存储?

在C++03代码中,我将如何可移植地实现一个unsignedchar[sizeof(T)]缓冲区,其大小和对齐方式与给定类型T?例如:templatevoidtest(){unsignedcharbuffer[sizeof(T)];//~T();}else{/*use'buffer'forsomethingelse*/}}这是否可能,或者您是否被迫使用编译器扩展来实现这一点? 最佳答案 在他的GuruOfTheWeek#28在专栏中,HerbSutter使用union,但不如Boost的努力强大。Boost的aligned_stor

c++ - 我将如何在 C++03 中可移植地实现对齐的堆栈存储?

在C++03代码中,我将如何可移植地实现一个unsignedchar[sizeof(T)]缓冲区,其大小和对齐方式与给定类型T?例如:templatevoidtest(){unsignedcharbuffer[sizeof(T)];//~T();}else{/*use'buffer'forsomethingelse*/}}这是否可能,或者您是否被迫使用编译器扩展来实现这一点? 最佳答案 在他的GuruOfTheWeek#28在专栏中,HerbSutter使用union,但不如Boost的努力强大。Boost的aligned_stor

c++ - 用于动态代码生成的最可移植库?

我正在寻找最便携的汇编程序库,例如asmjit或jitasm.当我说“最便携”时,我的意思是它对各种架构的支持最多。语言并不重要,但C++将是最好的解决方案,尤其是与GCC结合使用时。对我来说重要的架构是x86/64、PowerPC和ARM。 最佳答案 DynASM,由LuaJIT使用,支持x86、x64、ARM、MIPS和PowerPC。 关于c++-用于动态代码生成的最可移植库?,我们在StackOverflow上找到一个类似的问题: https://st

c++ - 用于动态代码生成的最可移植库?

我正在寻找最便携的汇编程序库,例如asmjit或jitasm.当我说“最便携”时,我的意思是它对各种架构的支持最多。语言并不重要,但C++将是最好的解决方案,尤其是与GCC结合使用时。对我来说重要的架构是x86/64、PowerPC和ARM。 最佳答案 DynASM,由LuaJIT使用,支持x86、x64、ARM、MIPS和PowerPC。 关于c++-用于动态代码生成的最可移植库?,我们在StackOverflow上找到一个类似的问题: https://st

c++ - 如何以可移植的方式检查文件是否存在于 C++ 中?

目前我使用此代码检查文件是否存在于Windows和POSIX兼容的操作系统(Linux、Android、MacOS、iOS、BlackBerry10)上:boolFileExist(conststd::string&Name){#ifdefOS_WINDOWSstruct_statbuf;intResult=_stat(Name.c_str(),&buf);#elsestructstatbuf;intResult=stat(Name.c_str(),&buf);#endifreturnResult==0;}问题:这段代码有什么缺陷吗?(可能是无法编译的操作系统)是否有可能仅使用C/C+

c++ - 如何以可移植的方式检查文件是否存在于 C++ 中?

目前我使用此代码检查文件是否存在于Windows和POSIX兼容的操作系统(Linux、Android、MacOS、iOS、BlackBerry10)上:boolFileExist(conststd::string&Name){#ifdefOS_WINDOWSstruct_statbuf;intResult=_stat(Name.c_str(),&buf);#elsestructstatbuf;intResult=stat(Name.c_str(),&buf);#endifreturnResult==0;}问题:这段代码有什么缺陷吗?(可能是无法编译的操作系统)是否有可能仅使用C/C+

c++ - 如何以相当可移植的方式以编程方式检查内存使用情况? (C/C++)

我正在编写跨平台C++代码(Windows、Mac)。有没有办法检查当前进程正在使用多少内存?一个非常人为的片段来说明:unsignedlongm0=GetMemoryInUse();char*p=newchar[random_number];unsignedlongm1=GetMemoryInUse();printf("%dbytesused\n",(m1-m0));当然(m1-m0)应该等于random_number,但我正在尝试在更复杂的级别上执行此操作,包括可以分配内存的可能的库调用。以下是不可取的:使用Valgrind(或其同类)使用自定义内存分配器进行跟踪分配的内存。

c++ - 如何以相当可移植的方式以编程方式检查内存使用情况? (C/C++)

我正在编写跨平台C++代码(Windows、Mac)。有没有办法检查当前进程正在使用多少内存?一个非常人为的片段来说明:unsignedlongm0=GetMemoryInUse();char*p=newchar[random_number];unsignedlongm1=GetMemoryInUse();printf("%dbytesused\n",(m1-m0));当然(m1-m0)应该等于random_number,但我正在尝试在更复杂的级别上执行此操作,包括可以分配内存的可能的库调用。以下是不可取的:使用Valgrind(或其同类)使用自定义内存分配器进行跟踪分配的内存。

c++ - 程序可移植性

如何确保我的程序完全可移植? 最佳答案 在所有目标平台上持续集成。 关于c++-程序可移植性,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3525177/