草庐IT

memories

全部标签

c++ - C3859 : Virtual memory range for PCH exceeded

我在编译(编辑:抱歉,我在这里没有说清楚:我实际上是指“重建”)我的混合模式项目时不时(不是每次)收到此错误消息。VisualStudio告诉我“使用‘-Zm114’或更高的命令行选项重新编译”。原则上没问题,我照VS说的做。但是目前,这有两个问题:为什么它不会在我进行重建时每次发生?如果我理解正确,编译器在编译我的项目时内存不足。因此,如果我进行重建,清除所有以前的工作,如果我不做任何更改,下次它不应该也用完内存吗?为了安全起见,我已经在这个项目的所有配置中为Zm(即Zm120)指定了120的值。为什么我会收到带有此较低值的错误消息?还是建议值114只是VS的胡乱猜测?

c++ - std::memory_order_relaxed 相对于相同原子变量的原子性

关于内存顺序的cppreference文档说Typicaluseforrelaxedmemoryorderingisincrementingcounters,suchasthereferencecountersofstd::shared_ptr,sincethisonlyrequiresatomicity,butnotorderingorsynchronization(notethatdecrementingtheshared_ptrcountersrequiresacquire-releasesynchronizationwiththedestructor)这是否意味着宽松的内存排序

c++ - POD 结构(相同类型的成员): are members in contiguous memory locations?

给定templatestructVector3d{Tx,y,z;};假设x、y和z位于连续的内存位置是否安全?对于T=float和T=double至少可以安全地假设吗?如果不能,是否有可能以跨平台的方式实现?注意:只要x、y、z是连续的,我不介意在z之后填充 最佳答案 Isitsafetoassumethatx,y,andzareincontiguousmemorylocations?从技术上讲,语言没有这样的保证。另一方面,它们也没有必要不连续,实际上它们很可能是连续的。Ifnotisitpossibletoenforceinac

c++ - 通过 https 发布时出现 "CURLE_OUT_OF_MEMORY"错误

我正在尝试编写一个使用libCurl将soap请求发布到安全Web服务的应用程序。此Windows应用程序是针对libCurl版本7.19.0构建的,而后者又是针对openssl-0.9.8i构建的。相关的curl相关代码如下:FILE*input_file=fopen(current->post_file_name.c_str(),"rb");FILE*output_file=fopen(current->results_file_name.c_str(),"wb");if(input_file&&output_file){structcurl_slist*header_opts=0

c++ - 如何测试 std::memory_order_relaxed 的行为?

我已经阅读了std::memory_order_relaxed的文档.Relaxedordering的部分解释是......//Thread1:r1=y.load(memory_order_relaxed);//Ax.store(r1,memory_order_relaxed);//B//Thread2:r2=x.load(memory_order_relaxed);//Cy.store(42,memory_order_relaxed);//D对此的解释是……[It]isallowedtoproducer1==r2==42.Inparticular,thismayoccurifDisc

c++ - GDB bt 错误 : "Not enough registers or memory available to unwind further"

来自核心文件的回溯由于以下原因削减了有用的信息:Backtracestopped:Notenoughregistersormemoryavailabletounwindfurther.为什么会出现此消息,我可以做些什么吗? 最佳答案 尝试使用-O0标记构建例如。CFLAGS="-g-O0" 关于c++-GDBbt错误:"Notenoughregistersormemoryavailabletounwindfurther",我们在StackOverflow上找到一个类似的问题:

c++ - 将 "Out of Memory"错误写入文件,没有内存?

如果程序内存不足,我想记录并可能警告用户,让他们有机会尝试释放一些内存(希望如此)。虽然我可以预先分配显示情况所需的必要GUI实体,但我担心的是,在这种情况下可能无法使用cstdio进行更多基本操作,例如打开或写入文件。我的问题是,如果一个程序根本不能再动态分配内存,是否仍然可以使用cstdio?是否需要采取任何特殊措施,例如预先打开文件或将其设置为不使用缓冲区?cstring函数仍然可以运行吗?在这种情况下还有其他可能需要了解的障碍吗?(在这种情况下警告用户是一种奢侈,主要目的是将错误记录到文件中,然后尝试使用cstdio挽救相关数据,然后按此顺序警告用户)

c++ - Visual Studio 2008/10 的即时窗口中的 "search memory"是否损坏?

在VisualStudio2005中,我开始严重依赖MSVC的立即窗口来处理itsusefulsearch-through-memory-for-byte-patternsfeature。.我们最近升级到VS2010,现在.S命令似乎不再起作用了。对于我尝试的任何搜索,即使我直接复制粘贴theexamplesfromMSDN,当我尝试使用内存搜索时,总是出现以下错误:CXX0014:Error:missingoperandOthershavereportedthisproblemhereonSO,但谷歌没有出现任何有用的讨论。此功能在MSVC2010中是否被简单地破坏了?我感觉微软在他

c++ - 什么是 C++11 原子 API 等同于 `` `__asm__ volatile ("":::: "memory")`` `

一个代码库有一个COMPILER_BARRIER宏定义为__asm__volatile("":::"memory").宏的目的是防止编译器跨屏障重新排序读写。请注意,这显然是编译器屏障,不是处理器级内存屏障。事实上,这是相当可移植的,因为在AssemblerTemplate中没有实际的汇编指令,只有volatile和memory破坏。因此,只要编译器支持GCC的ExtendedAsm语法,它就应该可以正常工作。不过,我很好奇如果可能的话,在C++11原子API中表达这一点的正确方法是什么。以下似乎是正确的想法:atomic_signal_fence(memory_order_acq_r

C++0X memory_order 无围栏,应用,支持的芯片

作为我之前question的跟进,atomic类使用memory_order指定大多数操作范围。与栅栏相反,此内存顺序仅影响其操作的原子。据推测,通过使用几个这样的原子,您可以构建一个并发算法,其中其他内存的顺序并不重要。所以我有两个问题:有人能给我指出一个算法/情况的示例,该算法/情况可以从单个原子变量的排序中受益并且不需要需要栅栏吗?哪些现代处理器支持这种行为?也就是说,编译器不会只是将特定顺序转换为正常的围栏。 最佳答案 关于std::atomic操作的内存排序参数变量不会影响该操作本身的顺序,它会影响该操作与其他操作创建的顺