![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Добрый день,
вот такой вот с виду безобидный код выдает ошибку
жалуется что недостаточно аргументов передал макросу max. Оказалось что в WinDef.h (который мне скорее всего boost заинклудил) объявлен макрос max который и мешает спокойно жить. Может кто-то встречался с этим? Как решали? На данный момент добавил
но не нравится...что делать? |
||||
|
|||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
можно еще #define NOMINMAX перед инклудами, или посмотреть, в каких условиях он "сам включается"
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
dumb
В принципе это вариант, но в MSDN об этом ни слова (или я плохо искал). Есть какие-либо теоретические гарантии что это всегда будет работать? Это сообщение отредактировал(а) azesmcar - 7.10.2009, 12:53 |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 2 Всего: 23 |
azesmcar, единственное что могу сказать:
- pqxx и otl пишут что нужно испоьзовать NOMINMAX - на официальных каналах microsoft ничего против или за не сказано - в некоторых приммерах с MSDN они сами его используют |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 2 Всего: 160 |
Ещё ребята из проекта Eigen тоже рекомендуют #define NOMINMAX. А проблема... сами знаете в чём. -------------------- |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Проблем в микрософте что они мало того что ненужные макросы пишут еще и min и max называют. я тоже на официальных каналах ничего не нашел..ладно, хрен с ними, поставил NOMINMAX. Всем спасибо, тема закрыта. |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 2 Всего: 160 |
Проблема в головах, у некоторых. "С++ мощный, так как предоставляет неичерпаемую свободу программисту". Вот ребята из MS и воспользовались. А что? Всё, что не запрещено, разрешено. Проблема в отсутствии модульности в языке и убдлюдочно-неудачной попытке реализации этой концепции с использованием заголовочных файлов. Что в свою очередь приводит к необходимости включения в язык препроцессора. Не менее убдлюдочной концепции. Но основная проблема в головах... Это сообщение отредактировал(а) kemiisto - 7.10.2009, 14:03 -------------------- |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Не надо зря наезжать на микрософт. Этим макросам лет примерно столько же, сколько С (даже не С++), и представляете сколько кода их использует? А бусту и прочим std без году неделя. Просто взять и выкинуть нельзя. Совместимость, однако. А вот новый код приходится писать с оглядкой. #undef - нормалное решение, сама так делаю. Но тоже может быть проблема, если использовать библиотеки, которые используют эти макросы... Но как-то всегда решается. -------------------- ... |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 2 Всего: 160 |
Я и не наезжаю. Я о другом... Earnest, я, собственно, о том же. Если бы язык С++ проектировался, то стало бы понятно, что столь мощное (безусловно мощное) средство как препроцессор принесёт со временем море ппоблем. В том числе и проблему - предмет нашего обсуждения. Но... С++ писался "на коленках". За что боролись, что называется. Приятно удивлён родом определительного местоимения. -------------------- |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
К сожалению, практика показывает, что все, что тщательно проектируется, имеет мало шансов прижиться. Взять язык АДА, например. Токмо живой, саморазвивающийся организм имеет шанс... С++ в этом смысле показателен. Плюс наследие С, которое еще древнее. Причем, двадцать лет назад о препроцессоре говорили как об очень сильной стороне С. Вот, русский язык тоже пытаются сделать более удобоваримым, и кому это нравится, кроме нескольких дебилов, неспособных освоить грамматику? Так что пишите поэмы на С++ и наслаждайтесь его несовершенством. -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |