我知道int是一个值类型,但什么是值类型的数组?参考类型?价值类型?我想将一个数组传递给一个函数来检查一些东西.我应该只是传递数组,因为它只是传递它的引用,或者我应该将它传递给ref?
Cpp核心指南中的例子浪费了什么?
P.9:不要浪费时间或空间
[...]
Run Code Online (Sandbox Code Playgroud)void lower(zstring s) { for (int i = 0; i < strlen(s); ++i) s[i] = tolower(s[i]); }是的,这是生产代码中的一个例子.我们留给读者来弄清楚浪费了什么.
来自https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rp-waste
在一个大项目中,我只是在构建发布版本(使用优化标志)时才从g ++ - 5.1.1获得一些编译器警告,但是在构建调试版本时(这会禁用大多数编译器优化).我已经将问题缩小到下面列出的最小示例,其中包含重现问题的命令.如果我使用g ++ - 4.8.4,则不会出现此问题.这是g ++ - 5.1.1中的错误吗?或者,这段代码是否做了合法错误的事情并保证警告?为什么不对代码中列出的最后三种情况产生任何警告(请参阅底部的编辑以获得一些解释)?
对于那些感兴趣的人,这是GCC的Bugzilla中的错误报告.
/*
This code complains that the variable 'container' is unused only if optimization
flag is used with g++-5.1.1 while g++-4.8.4 does not produce any warnings in
either case. Here are the commands to try it out:
$ g++ --version
g++ (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; …Run Code Online (Sandbox Code Playgroud) a = [[1,2,3],[4,1],[2,2,6],[3]]
Run Code Online (Sandbox Code Playgroud)
将打印24的总和
我知道一个列表,比如[1,2,3]我可以做,sum(a)但我正在努力使用嵌套列表.
谢谢.