小编Eri*_*ric的帖子

如何从g ++中删除原型警告?

我目前有一个使用g ++编译代码的项目.我正在清理代码,我想确保所有函数都有原型,以确保正确处理const char*之类的东西.不幸的是,当我尝试指定-Wmissing-prototypes时,g ++会抱怨:

g++ -Wmissing-prototypes -Wall -Werror -c foo.cpp
cc1plus: warning: command line option "-Wmissing-prototypes" is valid for Ada/C/ObjC but not for C++
Run Code Online (Sandbox Code Playgroud)

有人能告诉我:
1)为什么gcc这个无效?这是gcc中的错误吗?
2)有没有办法打开这个警告?

编辑:

这是剪切和粘贴示例:

cat > foo.cpp <<EOF
void myfunc(int arg1, int arg2)
{
    /* do stuff with arg1, arg2 */
}
EOF
g++ -Wmissing-prototypes -c foo.cpp  # complains about not valid
g++ -c foo.cpp                       # no warnings
# Compile in C mode, warning appears as expected:
g++ -x c -Wmissing-prototypes -c foo.cpp
Run Code Online (Sandbox Code Playgroud)

c++ warnings g++ compiler-warnings

7
推荐指数
3
解决办法
9972
查看次数

可归属性

我有一个库(django-piston),它期望类的一些参数作为类属性.我想在一个方法中动态定义这个值.所以我想做一些事情:

class MyHandler(BaseHandler):
    @property
    def fields(self):
        fields = self.model._meta.fields + self.model._meta.virtual_fields
        # Do something more with fields
        return fields
Run Code Online (Sandbox Code Playgroud)

但它失败了:

'property' object is not iterable
Run Code Online (Sandbox Code Playgroud)

所以我想做一些事情:

class iterable_property(property):
    def __iter__(self):
        # What here?
Run Code Online (Sandbox Code Playgroud)

但我被困在这里.我怎么能得到一个也可以迭代的属性?

python class-properties

6
推荐指数
1
解决办法
4324
查看次数

虽然忽略了一条线内的图案,但忽略了整条线

我经常需要比较两个文件,而忽略这些文件中的某些更改.我不想忽略整条线,只是它们的一部分.最常见的情况是线上的时间戳,但我还需要忽略其他几十种模式.

文件1:

[2012-01-02] Some random text foo
[2012-01-02] More output here
Run Code Online (Sandbox Code Playgroud)

文件2:

[1999-01-01] Some random text bar
[1999-01-01] More output here
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想看到第1行的差异,但不是第2行.

使用diff的-I选项不起作用,因为它忽略整行.理想输出:

--- file1       2013-04-05 13:39:46.000000000 -0500
+++ file2       2013-04-05 13:39:56.000000000 -0500
@@ -1,2 +1,2 @@
-[2012-01-02] Some random text foo
+[1999-01-01] Some random text bar
 [2012-01-02] More output here
Run Code Online (Sandbox Code Playgroud)

我可以用sed预处理这些文件:

sed -e's/^\[....-..-..\]//' < file1 > file1.tmp
sed -e's/^\[....-..-..\]//' < file2 > file2.tmp
diff -u file1.tmp file2.tmp
Run Code Online (Sandbox Code Playgroud)

但后来我需要将这些临时文件放在某处,并记得事后清理它们.此外,我的diff输出不再引用原始文件名,也不再发出原始行.

是否有广泛可用的差异变体或类似工具,可以作为单个命令执行此操作?

regex unix diff compare

6
推荐指数
1
解决办法
974
查看次数

如何使用 StartTLS 获取 LDAP 服务器的 SSL 证书?

我正在尝试将我的应用程序配置为访问仅使用 StartTLS 扩展侦听端口 389 的LDAP 服务器以确保安全。我想要获取 SSL 证书的副本,以便可以将其指定为已知证书(在 jssecacerts 文件中,因为我的应用程序是用 Java 编写的)。

如果它在端口 636 上运行,我会像这样使用 openssl:

openssl s_client -host myhost -port 636
Run Code Online (Sandbox Code Playgroud)

并从输出中获取证书。

我的第一个想法是尝试使用:

openssl s_client -host myhost -port 389 -starttls ...
Run Code Online (Sandbox Code Playgroud)

但这不支持 LDAP 版本的 starttls。

然后,我尝试使用具有高调试级别的 ldapsearch:

ldapsearch -ZZ -h myhost -d99 ...
Run Code Online (Sandbox Code Playgroud)

我可以看到无线数据包含证书,但它不是我知道如何使用的形式。

有没有一种简单的方法来获取证书,无论是通过命令行工具还是短程序?(我不太关心哪种语言,但 Java 是理想的选择)

java ssl ldap

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

在javascript中检索javascript注释,或者,如何在js中解析js?

我正在寻找一种方法来从一些(其他)JavaScript代码访问JavaScript的评论.我计划使用它来显示页面上调用各种js函数的元素的低级帮助信息,而不会在多个位置复制该信息.

的mypage.html:

...
<script src="foo.js"></script>
...
<span onclick="foo(bar);">clickme</span>
<span onclick="showhelpfor('foo');>?</span>
...
Run Code Online (Sandbox Code Playgroud)

foo.js:

/**
 * This function does foo.
 * Call it with bar.  Yadda yadda "groo".
 */
function foo(x)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想我可以使用getElementsByTagName来获取脚本标记,然后使用AJAX请求加载文件以获取它的纯文本内容.然而,那时我需要一种方法来以可靠的方式解析javascript(即不是一堆乱砍的regexp),它们保留了那些简单地评估它会抛弃的字符.

我想把简单地把文档放在函数之后,用js字符串,但这很尴尬,我觉得让doxygen选择那个很难.

function foo(x) { ... }
foo.comment = "\
This functions does foo.\
Call it with bar.  Yadda yadda \"groo\".\
";
Run Code Online (Sandbox Code Playgroud)

javascript parsing comments

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