Visual studio Visual Studio';s';格式文件';不';无法识别每个宏的Q_
我注意到Qt的宏与Visual Studio的某些功能不兼容:Visual studio Visual Studio';s';格式文件';不';无法识别每个宏的Q_,visual-studio,qt,visual-studio-2017,code-formatting,Visual Studio,Qt,Visual Studio 2017,Code Formatting,我注意到Qt的宏与Visual Studio的某些功能不兼容: IntelliSense将其检测为函数声明:每个Q_FOREACH在类查看器中显示为函数/方法。幸运的是解决了这个问题 代码格式化还将其检测为函数声明(编辑>高级>格式化文档)。例如,对于我当前的格式样式: void foo() { Q_FOREACH (auto action, actions){ (action); } for (int i = 0; i < 10; ++i) { (i); } } void foo(){
Q_FOREACH
在类查看器中显示为函数/方法。幸运的是解决了这个问题void foo() {
Q_FOREACH (auto action, actions){ (action);
}
for (int i = 0; i < 10; ++i) { (i);
}
}
void foo(){
Q_FOREACH(自动动作,动作){(动作);
}
对于(int i=0;i<10;++i){(i);
}
}
格式为
void foo()
{
Q_FOREACH(auto action, actions)
{
(action);
}
for (int i = 0; i < 10; ++i) {
(i);
}
}
void foo()
{
Q_FOREACH(自动操作,操作)
{
(行动);
}
对于(int i=0;i<10;++i){
(i) );
}
}
而不是
void foo()
{
Q_FOREACH (auto action, actions) {
(action);
}
for (int i = 0; i < 10; ++i) {
(i);
}
}
void foo()
{
Q_FOREACH(自动操作,操作){
(行动);
}
对于(int i=0;i<10;++i){
(i) );
}
}
更新:为了提供一些额外的上下文,我们刚刚开始从VS 2010迁移到VS 2017。目前我们只迁移IDE,工具集仍然在2010,其中自然替换,C++ 11范围,对于C++编译器的版本是不可用的。 据了解,团队中的一些成员一直在使用(和)进行代码格式化,这或多或少可以接受地处理这种情况(以及其他与Qt相关的事情)。我开始研究迁移到本机代码格式化程序的可能性,并发现了这一点,这就是我提出这个问题的原因
尚未解决我的问题的相关问题:
是的。解决方法很简单:不要使用该宏。没必要。改为使用范围。你想写:
void foo()
{
for (auto action : actions)
action->doSomething();
}
是的,我知道,我也想,但是,对不起,我忘了提到我们正在从2010年迁移到2017年,目前工具集定位在2010年(其中的C++11范围不可用)。我正在更新问题以指出这一点。谢谢你的回复!