草庐IT

C++标准

全部标签

c# - 根据以下标准开发桌面应用程序的语言/平台

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion面对您可以自由设计的新应用程序的挑战,组建一个团队来开发和管理:您会选择哪种语言/平台?为什么?背景:桌面应用程序将控制硬件设备并执行计算、分析和显示其返回的数据。要求:(重要性:10=最重要)需要使用USB和/或以太网与设备通信(9)具备相关技能的工程师(8)高质量IDE/工具的可用性(8)IDE/工具成本(7)资源、教程和支持的可用性(9)语言/API/平台/框架的生命周期-即对该应用

c++ - strcpy 中的段错误

考虑下面的程序charstr[5];strcpy(str,"Hello12345678");printf("%s",str);当运行这个程序时出现段错误。但是当strcpy替换为以下内容时,程序运行正常。strcpy(str,"Hello1234567");所以问题是,当尝试将长度超过5个字符的任何其他字符串复制到str时,它应该会崩溃。那么为什么它不会因为“Hello1234567”而崩溃而只会因为“Hello12345678”而崩溃,即长度为13或超过13的字符串。这个程序是在32位机器上运行的。 最佳答案 您应该对三种类型的标

c++ - 关于 C/C++ 堆栈分配

在学习C++(和C)时,我对堆栈分配的工作有一些特别的疑问,我找不到解决方案:堆栈分配是否隐式调用malloc/free函数?如果不;它如何保证堆栈分配和堆分配之间没有冲突?如果是;C++中的堆栈分配是否也隐式调用new/delete?如果是;为类重载new运算符会影响其堆栈分配吗?它在VC++中产生了令人困惑的结果;但由于VC++并不完全符合标准(或者我听说)我决定我最好在这里问... 最佳答案 堆栈分配不使用任何类似malloc/free的东西。它使用一block称为程序堆栈的内存,它只是一段连续的内存。有一个特殊的寄存器用来存

java - 托管语言是否锁定刷新并重新加载 native 库的变量?

当我们在C#和Java等托管语言中使用锁时,我们始终可以确保我们处理的是最新数据。特别是在Java内存模型中,它们有一种称为先发生关系的保证。但我不确定原生库会发生什么情况。比如说,我有这样的C函数:staticintsharedData;//I'mnotdeclaringthisasvolatileonpurposehere.voidsetData(intdata){sharedData=data;//Notusinganymutexorthelike.}intgetData(){returnsharedData;}我也有像这样的C#代码://Thread1while(true)lo

c++ - 在 Linux 上,在 Eclipse CDT 中使用 gdb 调试 C++ 应用程序,如何向标准输入输入内容?

在Linux上,我尝试在EclipseCDT中使用gdb调试C++应用程序。例如,应用程序applic.exe接受一些命令行参数arg1和arg2并且它需要stdin(例如,取自文件input.txt)。通常,要在控制台中运行应用程序,我会这样做:catinput.txt|applic.exearg1arg2在控制台中使用gdb我可以做到:gdbapplic.exe(gdb)runapplic.exearg1arg2是否可以在Eclipse中使用gdb来做到这一点?我知道如何在EclipseDebugConfigurations中指定参数(和环境),但是stdin呢?

c++ - 在C语言中使用遗传算法求一个数的平方根时如何实现选择和交叉

我正在尝试使用遗传算法找出float的平方根。我已经初始化了随机数和适应度函数。如何实现从种群和统一交叉中选择parent? 最佳答案 选择gilad(您正在使用的)提供的功能似乎不错。为什么不遵循标准程序呢?您可以在wikipedia上找到一些想法。交叉如果您将候选对象视为32位vector(实际上是31位),那么进行均匀交叉就是以一半的概率选择父代的位。这个想法是:抛硬币如果head接替parent,如果尾部接受parent二从程序上讲,从2个parent创建child的有效方法是生成一个随机的32位数字r,并给定parenta

c++ - 为什么 RVO 和 NRVO 不是标准强制要求的?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion为什么RVO和NRVO优化不是强制性的(当它们适用时)标准?例如有一个非常常见的情况,当一个函数产生一些对象并将其作为结果返回时。由于RVO/NRVO,复制/移动构造函数通常被省略,但它们仍然需要定义,这有点令人困惑。如果RVO/NRVO在标准中,在这种情况下将不再需要复制/移动构造函数。

c++ - 为什么没有标准化的方法来避免 const 方法代码重复?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion根据我的经验,在成员方法的const和非const版本中使用相同的代码是一种常见现象。避免复杂方法代码重复的一种方法是使用const_cast删除非const版本中的const-ness,如ScottMeyers在EffectiveC++(第3项)中推荐的那样。然而,这对于可能只返回一个指针的非常短的方法没有好处-当然在这种情况下重复不是那么有问题。这仍然让我想知道是否有没有关键字或等效的

c++ - 标准库中没有 std::identity 是有原因的吗?

在处理C++中的泛型代码时,我会发现std::identity仿函数(如std::negate)非常有用。标准库中不存在这是否有特殊原因? 最佳答案 引入std::identity后不久,问题开始出现,首先是与std::identity的cpp98之前的定义发生冲突,作为扩展出现:https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/vrrtKvA7cqo该站点可能会提供更多历史信息。 关于c++-标准库中没

c++ - 标准授权 enable_shared_from_this 是否公开继承?为什么?

从enable_shared_from_this继承是很常见的,只是为了能够从成员函数返回shared_ptr作为主要目的,而不是暴露enable_shared_from_this派生类中的API。由于要使用enable_shared_from_this必须通过公共(public)继承来实现(标准是否强制要求这样做?理由是什么?),这是无法实现的并且enable_shared_from_thisAPI被强制进入派生类公共(public)API。私下继承enable_shared_from_this并使shared_ptr成为友元类可以在clang上与libc++结合使用,但不适用于st