Questions tagged «c++»

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

6
C ++ 11右值和移动语义混淆(返回语句)
我试图理解右值引用并移动C ++ 11的语义。 这些示例之间有什么区别,哪些将不进行矢量复制? 第一个例子 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); 第二个例子 std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector(); 第三个例子 std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector();

5
CMake中的调试与发布
在GCC编译的项目中, 如何为每种目标类型(调试/发布)运行CMake? 如何使用CMake指定调试和发布C / C ++标志? 我如何表示将使用编译主可执行文件g++并使用一个嵌套库gcc?
435 c++  c  gcc  cmake 


12
float和double有什么区别?
我已经读过双精度和单精度之间的区别。但是,在大多数情况下,float并且double似乎是可以互换的,即,使用其中一种似乎并不影响结果。真的是这样吗?花车和双打何时可以互换?它们之间有什么区别?

6
编译/链接过程如何工作?
编译和链接过程如何工作? (注意:这本来是Stack Overflow的C ++ FAQ的一个条目。如果您想批评以这种形式提供FAQ的想法,则可以在开始所有这些操作的meta上进行发布。)该问题在C ++聊天室中进行监控,该问题最初是从FAQ想法开始的,所以提出这个想法的人很可能会读懂您的答案。)

10
C ++多行字符串文字
有什么方法可以在C ++中使用Perl编写多行纯文本,常量文字?也许解析#include文件有一些技巧?我想不出一个,但是男孩,那太好了。我知道它将用C ++ 0x。



9
前置双冒号“ ::”是什么意思?
我在必须修改的类中找到了以下代码行: ::Configuration * tmpCo = m_configurationDB;//pointer to current db 而且我不知道在类名前面加双冒号到底是什么意思。否则,我会读到:tmpCo作为类的对象的指针的声明Configuration...但是前置的双冒号使我感到困惑。 我还发现: typedef ::config::set ConfigSet;

23
如何在GCC中摆脱从字符串常量到'char *'的过时转换警告?
因此,我正在开发一个非常大的代码库,最近将其升级到gcc 4.3,现在会触发以下警告: 警告:不建议将字符串常量转换为'char *' 显然,解决此问题的正确方法是找到每个声明,例如 char *s = "constant string"; 或函数调用,例如: void foo(char *s); foo("constant string"); 并使其成为const char指针。但是,这意味着最少要触摸564个文件,这不是我目前希望执行的任务。现在的问题是我正在使用-werror,因此我需要某种方式来抑制这些警告。我怎样才能做到这一点?
409 c++  string  gcc 

21
C / C ++中是否有标准的符号函数(signum,sgn)?
我想要一个返回负数为-1和正数为+1的函数。 http://en.wikipedia.org/wiki/Sign_function 编写我自己的代码很容易,但是似乎应该将其存储在标准库中。 编辑:具体来说,我正在寻找一个对浮点数起作用的函数。
409 c++  c  math 


20
C ++是上下文无关的还是上下文相关的?
我经常听到有人声称C ++是上下文相关的语言。请看以下示例: a b(c); 这是变量定义还是函数声明?这取决于符号的含义c。如果c是变量,则a b(c);定义一个名为btype 的变量a。直接用初始化c。但如果c是类型,则a b(c);声明一个名为的函数b,该函数采用a c并返回a a。 如果您查看无上下文语言的定义,它将基本上告诉您所有语法规则的左手边必须仅由一个非终结符组成。另一方面,上下文相关的语法允许在左侧使用任意字符串的终止符和非终止符。 浏览“ C ++编程语言”的附录A,我找不到一个单独的语法规则,该规则除左侧有一个非终结符外还没有其他内容。这意味着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.