我试图找出如何最好地将C++ 0x的override
标识符添加到已经覆盖大量C++代码的所有现有方法中,而无需手动执行.
(我们有许多,几十万行代码,而且手动完成它将是一个完全不起作用的.)
我们的编码标准说我们应该virtual
在派生类中对所有隐式虚方法添加关键字,即使严格不必要(以帮助理解).
因此,如果我自己编写脚本,我会编写一个脚本来读取所有标题,找到所有以virtual开头的函数,并override
在下面的分号前插入.然后在支持的编译器上编译它override
,并修复基类中的所有错误.
但我真的不想使用这种本土方式,因为:
那么,是否已经有一个工具可以解析C++代码,检测覆盖的现有方法,并附override
加到它们的声明中?
(我知道静态分析工具,比如PC-lint,它会警告看起来应该覆盖的函数.我所追求的是实际上会使我们的代码变得混乱的东西,以便在编译器中检测到覆盖中的未来错误时间,而不是后来的静态分析)
(如果有人想要指出C++ 03不支持'覆盖'......在实践中,我将添加一个宏,而不是实际的"覆盖"标识符,以便在旧版本上使用我们的代码不支持此功能的编译器.所以在添加标识符之后,我会运行一个单独的脚本来替换它我们将要使用的任何宏...)
提前致谢...
如果我在函数参数的"成员之后"文档中使用,例如,//!<
在每个参数之后使用,而不是在标题中使用@param,则"Parameters"部分始终位于生成的输出文件中的"Return"之后.
是否可以定义顺序,以便"返回"之前放置"参数"?
/**
*****************************************************************************************
* @brief Test API
*
* @usage This API can be called at any time
*
* @return 0 if successful; or 1 if failed
****************************************************************************************/
int TestAPI(
int argument1, //!< first argument
int argument2 //!< second argument
);
Run Code Online (Sandbox Code Playgroud) 在QMake中:
CONFIG += console
Run Code Online (Sandbox Code Playgroud)
如何在CMake中获得相同的效果?
(规格:Qt 5.0.2,CMake 2.8.10)
在用户为变量提供了一些值之后,有没有办法机器生成一些值cookiecutter.json
?
我问的原因是:
所以我真的希望能够删除用户提示,并改为计算值.
我试过的事情:
pre_gen_project.py
文件以显示如何执行此操作我在命令行上使用cookiecutter:
cookiecutter path_to_template
Run Code Online (Sandbox Code Playgroud)
我错过了任何技巧吗?
如何/EHa
在MS编译器的QtCreator中添加(结构化异常处理).我已经使用过Microsoft Visual C++编译器.
最近,我的老板要求我提高应用程序的启动速度,AP是用C++编写的.AP有点大,它使用200+ dll,Windows需要很长时间才能进入main()函数.我试过这两种方式,但还是不能让老板开心.
还有其他方法可以改善它吗?提前致谢.
我正在研究PyKDE4/PyQt4应用程序,Autokey,我注意到当我发送程序一个CTRL + C时,键盘中断在我与应用程序交互之前不会被处理.单击菜单项或更改复选框.
lfaraone@stone:~$ /usr/bin/autokey
^C^C^C
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/autokey/ui/popupmenu.py", line 113, in on_triggered
def on_triggered(self):
KeyboardInterrupt
^C^C^C
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/autokey/ui/configwindow.py", line 423, in mousePressEvent
def mousePressEvent(self, event):
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)
尽管在/ usr/bin/autokey中有以下内容:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from autokey.autokey import Application
a = Application()
try:
a.main()
except KeyboardInterrupt:
a.shutdown()
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)
为什么没有捕获KeyboardInterrupt:
使用Python 2.6运行Ubuntu 9.04.
我编写了一类静态方法作为AutoKey API 的补充。我想将这些包含在我在自动键编辑器中编写的脚本中,但我还无法完全弄清楚,因为我对 python 的经验仍然有限。
我应该把 class-name.py 文件放在哪里才能将其导入到 autokey 中?
我有一个公共职能:
void determineAction(QStringList tempL); // in header file
void CompArch::determineAction(QStringList tempL)
{
}
//in cpp file
Run Code Online (Sandbox Code Playgroud)
我收到错误:
CompArch.cpp:127:6: error: ‘tempL’ has incomplete type
/usr/include/qt4/QtCore/qstring.h:77:7: error: forward declaration of ‘struct QStringList’
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样.
c++ ×4
qt ×3
autokey ×2
python ×2
c++11 ×1
capistrano ×1
cmake ×1
cookiecutter ×1
doxygen ×1
gradle ×1
overriding ×1
performance ×1
pykde ×1
pyqt ×1
qstring ×1
qt-creator ×1
ubuntu ×1
visual-c++ ×1
windows ×1