小编por*_*ast的帖子

gcc -Wshadow太严格了?

在以下示例中:

class A
{
  public:
    int len();
    void setLen(int len) { len_ = len; } // warning at this line
  private:
    int len_;
};
Run Code Online (Sandbox Code Playgroud)

gcc with -Wshadow发出警告:

main.cpp:4: warning: declaration of `len' shadows a member of `this'
Run Code Online (Sandbox Code Playgroud)

函数len和整数len是不同类型的.为什么警告?

更新

我看到"阴影"的含义是广泛的.从形式上看,编译器也完全符合它的含义.

不过恕我直言,这面旗帜并不实用.例如常用的setter/getter成语:

class A {
   void prop(int prop);  // setter
   int prop() const;     // getter

   int prop;
};
Run Code Online (Sandbox Code Playgroud)

如果有一个警告标志不会在这种情况下发出警告会很好,但会在"int a"隐藏"int a"的情况下发出警告.

添加-Wshadow对我的遗留代码发出大量警告,同时我不时发现由"阴影"问题引起的错误.

我不介意它会被称为"-Wmuch_more_practical_and_interesting_shadow"或"-Wfoooooo".

那么,是否有其他 gcc警告标志符合我的描述?

更新2

不仅我认为-Wshadow不知何故没有用的链接文本.我并不孤单:)不太严格的检查可能会更有用.

c++ gcc compilation

16
推荐指数
5
解决办法
2万
查看次数

eclipse无法删除某些断点

双击eclipse左侧的蓝色条设置断点.再次双击删除断点.这对我来说很有用,但是如果我使用git来检查不同的分支,那么断点的蓝点常常会"混乱"或者其他东西.我再也不能双击以取消它们.我被迫进入调试透视图,在"断点"视图中找到断点,然后右键单击并删除.有没有人有一个更简单的解决方案?我正在使用Windows 7中的java进行编码以获得它的价值.

我可以使用此代码重现此错误(假设if是第1行):

if(bool)
{
  // comment
  doSomething();
} else {
  doOther();
}
Run Code Online (Sandbox Code Playgroud)

我在第4行断点 - doSomething().然后我在if上方放了一条新线,将所有东西都移开.(在第5行移动断点).然后我做git stash save.当我点击回到eclipse时,蓝点显示在正确的行上,但是断点窗口仍然显示第5行.如果我双击以禁用,它实际上在第4行添加了第二个断点.

我觉得我应该向Eclipse人员报告.

java eclipse breakpoints

16
推荐指数
4
解决办法
1万
查看次数

运行./configure for vlc时找不到libavcodec

我想在ubuntu 10.04上为vlc运行'./configure'.但由于某种原因,它无法找到libavcode库.我检查/ usr/lib,它有库,为什么./configure找不到它?

这是'./configure'的错误:

checking for AVCODEC... no
configure: error: Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.
Run Code Online (Sandbox Code Playgroud)

但我已经安装了libavcodec-dev,但它仍然失败:

$ sudo apt-get install libavcodec-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libavcodec-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 201 not upgraded.
Run Code Online (Sandbox Code Playgroud)

我检查了'/ usr/lib',我看到了libavcodec.so:

-rw-r--r-- 1 root root 7339558 2010-03-04 04:42 libavcodec.a
lrwxrwxrwx 1 root root      21 2010-06-26 00:38 libavcodec.so -> libavcodec.so.52.20.1
lrwxrwxrwx 1 root …
Run Code Online (Sandbox Code Playgroud)

linux gcc vlc shared-libraries

10
推荐指数
2
解决办法
2万
查看次数

差异两个文件并保持新的或更改的行

我想编写一个bash脚本或一些shell命令来解决我的问题.我有两个文件,old.txt,new.txt.我想生成一个文件diff.txt,它只包含已更改或新增的行.例如,如果我有:

old.txt:

Sierra
Tango
Oscar
Victor
Whiskey
Yankee
Run Code Online (Sandbox Code Playgroud)

new.txt:

Sierra
Tango
Echo
Osc__ar
Victor
Uniform
Whiskey
Yan__kee
Run Code Online (Sandbox Code Playgroud)

我想要一个看起来像这样的diff.txt:

Echo
Osc__ar
Uniform
Yan__kee
Run Code Online (Sandbox Code Playgroud)

为了透视,我正在编写此脚本以帮助我创建差分Motorolla S2记录,以便通过串行端口将程序加载到嵌入式计算机.我知道bash相当不错,我只是不知道从哪里开始.

bash diff file

9
推荐指数
2
解决办法
5602
查看次数

厨师chef-validator.pem安全

嗨,我正在场外使用厨师设置一组机器.如果其中一台机器被盗,攻击者可以通过拥有chef-validator.pem对我的厨师服务器或其他节点造成什么损害?他们还可以通过厨师获得哪些其他东西?谢谢!

linux ubuntu chef-infra

8
推荐指数
3
解决办法
3330
查看次数

当UILabel内部增长时扩展UIView

我有一个和UIView的超级视图.UILabel可以具有不同的大小,具体取决于其中的文本量.所以,我需要与它一起成长和缩小,但却无法使其发挥作用.UIImageViewUILabelUIViewUILabel

它的外观截图如下:

在此输入图像描述

如您所见,标签上方和下方的间距太大.在.xib我设置的顶部和底部约束UILabel只是,10但显然这些是以某种方式违反.UIView对于上面的帧具有顶部约束,图像为>=10,因此它可以从中生长10.

你可以看到.xib:

在此输入图像描述

我试图增加Content Hugging PriorityUIView,但它并不能帮助.UILabel只有4个约束:相对于其超视图的顶部,底部,左侧,右侧UIView.我也试图改变Content Hugging PriorityUILabel相对UIView,但没有成功.该UIImageView是对实际的边界UIView,在图所示.

xcode xib uiview ios

6
推荐指数
2
解决办法
3176
查看次数

在Meteor.js中使用自定义bootstrap3主题

我已根据自述文件在我的meteorjs项目中添加了bootstrap 3:https: //github.com/mangasocial/meteor-bootstrap-3

一切都很好,但现在我想用http://bootswatch.com/(simplex)主题来主题我的引导程序.根据我需要的方向,我需要用下载的一个替换默认的bootstrap CSS文件.我的问题是什么是正确的"流星"方式来实现这一目标?如何覆盖作为流星包的一部分包含的文件?

css meteor bootswatch twitter-bootstrap-3

3
推荐指数
1
解决办法
3091
查看次数

matlab中find()函数的反函数是什么?

在Matlab中,我可以在这样的向量中找到所有非零条目:

>> v = [0 1 0 0 1]

v =

     0     1     0     0     1

>> indices = find(v)

indices =

     2     5
Run Code Online (Sandbox Code Playgroud)

假设我的向量v只能有01值,vindices向量中重现的简单方法是什么?

indexing matlab

3
推荐指数
2
解决办法
1960
查看次数

左移导致节点javascript中的负数

我无法理解移位如何在节点(v10.15.0)中工作.我期望ab将是相同的,但认为并非如此:

a = 0xff000000;
console.log(a.toString(16));
b = 0xff << 24;
console.log(b.toString(16));
Run Code Online (Sandbox Code Playgroud)

导致:

ff000000
-1000000
Run Code Online (Sandbox Code Playgroud)

我试图从4个字节创建一个32位数字时来到这个代码.

javascript

3
推荐指数
1
解决办法
283
查看次数

BASH:一次设置多个变量/ performance

我正在使用msys和mingw环境在Windows上运行bash脚本.我似乎有一个问题,使用像'cut'或sed'这样的命令会导致每次调用的开销.我不确定这是否是Windows运行.exe的影响或者是什么.反正这里是我的代码:

SOMETHING=`m6811-elf-readelf.exe -l "${TARGET_BASENAME}.elf" | sed '1,/Type / d' | sed '1,/^$/!d'`

echo "$SOMETHING" | while read -r line; do 
    # MEMORY_ADDRESSES=`echo $line | sed -ne 's/LOAD[^0-9a-z]*0x\([^ ]*\) 0x\([^ ]*\) 0x\([^ ]*\) 0x\([^ ]*\) 0x\([^ ]*\) .*/\1 \2 \3 \4 \5/p;'`
     OFFSET=`echo "$line" | cut -f12 -d\ `
     VIRTADDR=`echo "$line" | cut -f13 -d\ `
     PHYSADDR=`echo "$line" | cut -f14 -d\ `
     FILESIZE=`echo "$line" | cut -f15 -d\ `
     MEMSIZE=`echo "$line" | cut -f16 -d\ `
     echo $OFFSET $VIRTADDR $PHYSADDR …
Run Code Online (Sandbox Code Playgroud)

variables bash performance gcc elf

2
推荐指数
1
解决办法
3221
查看次数