我目前有一个使用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) 我有一个库(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)
但我被困在这里.我怎么能得到一个也可以迭代的属性?
我经常需要比较两个文件,而忽略这些文件中的某些更改.我不想忽略整条线,只是它们的一部分.最常见的情况是线上的时间戳,但我还需要忽略其他几十种模式.
文件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输出不再引用原始文件名,也不再发出原始行.
是否有广泛可用的差异变体或类似工具,可以作为单个命令执行此操作?
我正在尝试将我的应用程序配置为访问仅使用 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 是理想的选择)
我正在寻找一种方法来从一些(其他)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)