Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

10
C ++ 11中引入了哪些重大更改?
我知道C ++ 11中的至少一项更改会导致一些旧代码停止编译:explicit operator bool()在标准库中引入,替换了的旧实例operator void*()。当然,将要中断的代码可能最初应该是无效的代码,但是仍然是一个重大更改:曾经有效的程序不再有效。 还有其他重大变化吗?
227 c++  c++11 

18
为什么switch语句不能应用于字符串?
编译以下代码,得到的错误type illegal。 int main() { // Compilation error - switch expression of type illegal switch(std::string("raj")) { case"sda": } } 您不能在switch或中使用字符串case。为什么?是否有任何解决方案可以很好地支持类似于打开字符串的逻辑?

11
非常量引用为什么不能绑定到临时对象?
为什么不允许获得对一个临时对象的非常量引用,哪个函数getx()返回?显然,这是C ++标准所禁止的,但是我对这种限制的目的感兴趣,而不是对该标准的引用。 struct X { X& ref() { return *this; } }; X getx() { return X();} void g(X & x) {} int f() { const X& x = getx(); // OK X& x = getx(); // error X& x = getx().ref(); // OK g(getx()); //error g(getx().ref()); //OK return 0; …



8
基本指针和堆栈指针到底是什么?他们指出了什么?
使用来自维基百科的示例,其中DrawSquare()调用DrawLine(), (请注意,此图在底部具有高地址,在顶部具有低地址。) 任何人都可以解释我什么ebp,并esp在这方面? 从我所看到的,我会说堆栈指针总是指向堆栈的顶部,而基本指针指向当前函数的开头?或者是什么? 编辑:我的意思是在Windows程序的上下文中 edit2:又如何eip运作? edit3:我有以下来自MSVC ++的代码: var_C= dword ptr -0Ch var_8= dword ptr -8 var_4= dword ptr -4 hInstance= dword ptr 8 hPrevInstance= dword ptr 0Ch lpCmdLine= dword ptr 10h nShowCmd= dword ptr 14h 它们似乎都是双字,因此每个占用4个字节。所以我可以看到从hInstance到var_4有4个字节的距离。这些是什么?我认为这是寄信人地址,如维基百科的图片所示? (编者注:从迈克尔的答案中删除了一个长引号,该引号不属于该问题,但编辑了一个后续问题): 这是因为函数调用的流程是: * Push parameters (hInstance, etc.) * Call function, which pushes return …
225 c++  c  assembly  x86 


5
C ++中的_tmain()和main()有什么区别?
如果我使用以下main()方法运行C ++应用程序,则一切正常: int main(int argc, char *argv[]) { cout << "There are " << argc << " arguments:" << endl; // Loop through each argument and print its number and value for (int i=0; i<argc; i++) cout << i << " " << argv[i] << endl; return 0; } 我得到了我的期望,并且我的论据被打印出来。 …
224 c++  unicode  arguments 

13
Windows上最好的免费C ++ Profiler是什么?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我正在寻找一个探查器,以便在我的C ++代码中找到瓶颈。我想找到一个免费的,非侵入式的,良好的性能分析工具。我是一名游戏开发人员,我在Xbox 360上使用PIX,发现它很好,但是它不是免费的。我知道Intel VTune,但它也不免费。
224 c++  windows  profile 

6
作为模板参数传递的函数
我正在寻找涉及将C ++模板函数作为参数传递的规则。 C ++支持此功能,如此处的示例所示: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " << temp << std::endl; } int main() { doOperation<add1>(); doOperation<add2>(); } 但是,学习这种技术很困难。谷歌搜索“作为模板参数的功能”并没有多大帮助。令人惊讶的是,经典的C ++模板《完整指南》也没有对此进行讨论(至少不是从我的搜索中获得)。 我的问题是这是否有效的C ++(或只是一些广泛支持的扩展)。 另外,有没有办法在这种模板调用期间允许具有相同签名的仿函数与显式函数互换使用? 下面确实没有工作,在上面的程序,至少在视觉C …






By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.