Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Bepec от Август 26, 2014, 17:43



Название: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Bepec от Август 26, 2014, 17:43
Имеется файл

Код:
#ifndef GELLO_H
#define GELLO_H

#include <QTime>
#include <QString>
#include <QTime>
#include <QDebug>

void log(QString data)
{
qDebug() << QTime::currentTime().toString("hh:mm:ss.zzz");
}
#endif

Включаем в любом Qt классе
При компиляции вызывает следующие ошибки
Код:
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): warning C4003: not enough actual parameters for macro 'min'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2059: syntax error : '::'

1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): warning C4003: not enough actual parameters for macro 'min'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.3.1\5.3\msvc2010_opengl\include\qtcore\qdatetime.h(122): error C2059: syntax error : '::'

В интернете имеются "вроде бы" решения:
http://stackoverflow.com/questions/6884093/warning-c4003-not-enough-actual-parameters-for-macro-max-visual-studio-2010
http://stackoverflow.com/questions/9562356/warning-c4003-not-enough-actual-parameters-for-macro-min

Добавление макроса в NOMINMAX в среду или в файл даёт нулевой результат. Что делать?


Название: Re: Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: kambala от Август 26, 2014, 18:43
GELLO_H — сильно

Добавление макроса в NOMINMAX в среду или в файл даёт нулевой результат. Что делать?
мне помогает. писал в DEFINES его.


Название: Re: Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Bepec от Август 26, 2014, 19:09
Убирал название, написал что думал :D

Печально, но тут и ужас ситуации - что у меня студия :)


Название: Re: Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Johnik от Август 26, 2014, 21:29
перед #include <QTime> ставил:
Код
C++ (Qt)
#ifdef min
#undef min
#endif
 


Название: Re: Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Bepec от Август 26, 2014, 21:35
В точку. Благодарю.
Способ, предложенный Johnik работает. Теперь меня ничто не остановит :D


Название: Re: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: kambala от Август 26, 2014, 22:20
Печально, но тут и ужас ситуации - что у меня студия :)
ты не знаешь где в студии выставляются дефайны?.. или это не помогало?


Название: Re: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Bepec от Август 26, 2014, 23:51
Не помогает. И если напрямую в коде выставлять, и если добавлять в настройки проекта. Дефайн есть и видим, но нулевой результат. А undef сработал.

PS поправочка - если файл включаем в нескольких файлах. В случае одиночного использования ошибки нет.


Название: Re: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Johnik от Август 27, 2014, 00:38
PS поправочка - если файл включаем в нескольких файлах. В случае одиночного использования ошибки нет.
не это ли имеется ввиду (в вашем первом посте):
Код
C++ (Qt)
#include <QTime>
#include <QString>
#include <QTime>
 


Название: Re: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: Bepec от Август 27, 2014, 10:39
Не, не это. Псевдокод я писал по памяти.
Имелось включение файла в 2 классах. Т.е. закомментив его в одном, я получал отсутствие ошибки. Собственно это и меня ввело в заблуждение. Второй класс я упустил из виду.


Название: Re: [РЕШЕНО] Qt 5.3 + VS2010 + QTime. Проблемка.
Отправлено: kambala от Август 27, 2014, 10:56
Не помогает. И если напрямую в коде выставлять, и если добавлять в настройки проекта. Дефайн есть и видим, но нулевой результат.
мне помогает почему-то (во всяком случае в 2012, хотя кажется и в 2010 работало)