#include <valarray>
От: Meethoon  
Дата: 01.10.02 12:10
Оценка:
Здравствуйте!
В файле, где есть main, я пишу всего лишь

#include "stdafx.h"
#include <valarray>

int main(int argc, char* argv[])
{
    return 0;
}

БОЛЬШЕ НЕ ПИШУ НИЧЕГО
на что компилятор выдал мне
c:\program files\microsoft visual studio\vc98\include\valarray(104) : warning C4003: not enough actual parameters for macro 'min'
c:\program files\microsoft visual studio\vc98\include\valarray(110) : warning C4003: not enough actual parameters for macro 'max'
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2059: syntax error : 'function-style cast'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ';' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2238: unexpected token(s) preceding ';'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2146: syntax error : missing ';' before identifier '_Ty'
        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2629: unexpected 'unsigned int ('
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2143: syntax error : missing ')' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2059: syntax error : ')'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2143: syntax error : missing ';' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2238: unexpected token(s) preceding ';'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(116) : error C2146: syntax error : missing ';' before identifier 'valarray'
        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2629: unexpected 'bool ('
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ';' before '}'
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2238: unexpected token(s) preceding ';'
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2146: syntax error : missing ';' before identifier '_Ty'
        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
Error executing cl.exe.


ЧТО ЗА ХЕРЬ?
С превиликим уважением, Митхун Чакраборти
Re: #include <valarray>
От: Flea  
Дата: 01.10.02 12:17
Оценка:
Здравствуйте Meethoon, Вы писали:

M>Здравствуйте!

M>В файле, где есть main, я пишу всего лишь

M>
M>#include "stdafx.h"
M>#include <valarray>

M>int main(int argc, char* argv[])
M>{
M>    return 0;
M>}
M>

M>БОЛЬШЕ НЕ ПИШУ НИЧЕГО
M>на что компилятор выдал мне

M>ЧТО ЗА ХЕРЬ?


Может следует написать


#include <valarray.h>
Re: #include <valarray>
От: __Nicolay Россия  
Дата: 01.10.02 12:17
Оценка: 11 (1)
Здравствуйте Meethoon, Вы писали:

M>Здравствуйте!

M>В файле, где есть main, я пишу всего лишь

M>
M>#include "stdafx.h"
M>#include <valarray>

M>int main(int argc, char* argv[])
M>{
M>    return 0;
M>}
M>

M>БОЛЬШЕ НЕ ПИШУ НИЧЕГО
M>на что компилятор выдал мне
M>
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : warning C4003: not enough actual parameters for macro 'min'
M>c:\program files\microsoft visual studio\vc98\include\valarray(110) : warning C4003: not enough actual parameters for macro 'max'
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2059: syntax error : 'function-style cast'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ';' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2238: unexpected token(s) preceding ';'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2146: syntax error : missing ';' before identifier '_Ty'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(167) : see reference to class template instantiation 'std::valarray<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2629: unexpected 'unsigned int ('
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2143: syntax error : missing ')' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2059: syntax error : ')'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2143: syntax error : missing ';' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(115) : error C2238: unexpected token(s) preceding ';'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(116) : error C2146: syntax error : missing ';' before identifier 'valarray'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(648) : see reference to class template instantiation 'std::valarray<unsigned int>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2629: unexpected 'bool ('
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(104) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ')' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2059: syntax error : ')'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2143: syntax error : missing ';' before '}'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(109) : error C2238: unexpected token(s) preceding ';'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>c:\program files\microsoft visual studio\vc98\include\valarray(110) : error C2146: syntax error : missing ';' before identifier '_Ty'
M>        c:\program files\microsoft visual studio\vc98\include\valarray(754) : see reference to class template instantiation 'std::valarray<bool>' being compiled
M>        c:\program files\microsoft visual studio\vc98\include\valarray(756) : see reference to class template instantiation 'std::mask_array<_Ty>' being compiled
M>Error executing cl.exe.
M>


M>ЧТО ЗА ХЕРЬ?


добавь поcле "stdafx.h"

#undef min
#undef max

Эти макросы определены в файле windef.h кажется и он включен в stdafx
Re[2]: #include <valarray>
От: Meethoon  
Дата: 01.10.02 12:21
Оценка:
THANXX
С превиликим уважением, Митхун Чакраборти
Re[2]: #include <valarray>
От: Павел Кузнецов  
Дата: 01.10.02 12:22
Оценка:
Здравствуйте Flea, Вы писали:

M>>
M>>#include <valarray>


F>Может следует написать

F>
F>#include <valarray.h>


Не следует.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: #include <valarray>
От: Аноним  
Дата: 01.10.02 12:22
Оценка: 40 (1)
Здравствуйте Meethoon, Вы писали:

M>Здравствуйте!

M>В файле, где есть main, я пишу всего лишь

M>
M>#include "stdafx.h"
M>#include <valarray>

M>int main(int argc, char* argv[])
M>{
M>    return 0;
M>}
M>

M>БОЛЬШЕ НЕ ПИШУ НИЧЕГО
M>на что компилятор выдал мне
M>…
M>Error executing cl.exe.
M>[/code]

M>ЧТО ЗА ХЕРЬ?


В windefs.h (включаемом косвенно через windows.h) определены два макроса min и max, конфликтующие с STL.

Отменить эти макросы можно, добавив

#define NOMINMAX


перед строкою

#include <windows.h>


в файле stdafx.h.
Re[2]: #include <valarray>
От: Meethoon  
Дата: 01.10.02 12:23
Оценка:
F>Может следует написать

F>

F>
F>#include <valarray.h>
F>


Нет, уважаемый Flea, ТАК писать не следует.
С превиликим уважением, Митхун Чакраборти
Re[2]: #include <valarray>
От: Meethoon  
Дата: 01.10.02 12:24
Оценка:
Вам тоже THANXX
С превиликим уважением, Митхун Чакраборти
Re[3]: #include <valarray>
От: Павел Кузнецов  
Дата: 01.10.02 12:30
Оценка:
Здравствуйте Meethoon, Вы писали:

M>Вам тоже THANXX


Некоторым отвечающим в этом форуме нравится, когда им за полезные ответы ставят оценки (картинки 0 x 1 2 3 в правом верхнем углу сообщения).
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: #include <valarray>
От: Аноним  
Дата: 01.10.02 12:32
Оценка:
Здравствуйте Павел Кузнецов, Вы писали:

ПК>Здравствуйте Meethoon, Вы писали:


M>>Вам тоже THANXX


ПК>Некоторым отвечающим в этом форуме нравится, когда им за полезные ответы ставят оценки (картинки 0 x 1 2 3 в правом верхнем углу сообщения).


Мне не нравится, когда меня оценивают. Поэтому и разрегистрировался.
Re[5]: #include <valarray>
От: Павел Кузнецов  
Дата: 01.10.02 12:40
Оценка: :))
Здравствуйте Аноним, Вы писали:

А>Мне не нравится, когда меня оценивают. Поэтому и разрегистрировался.


Переформулируем: Некоторым зарегестрированным пользователям, отвечающим в этом форуме, нравится, когда им за полезные ответы ставят оценки (картинки 0 x 1 2 3 в правом верхнем углу сообщения), прочие имеют возможность отменить регистрацию :-)
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: #include <valarray>
От: GYB  
Дата: 01.10.02 15:44
Оценка:
Здравствуйте Павел Кузнецов, Вы писали:

ПК>Здравствуйте Аноним, Вы писали:


А>>Мне не нравится, когда меня оценивают. Поэтому и разрегистрировался.


ПК>Переформулируем: Некоторым зарегестрированным пользователям, отвечающим в этом форуме, нравится, когда им за полезные ответы ставят оценки (картинки 0 x 1 2 3 в правом верхнем углу сообщения), прочие имеют возможность отменить регистрацию


Неудивительно, что у некоторых пользователей форума, часто напоминающих об этом, скоро счётчик оценок обнулится из-за переполнения
Re[7]: #include <valarray>
От: Павел Кузнецов  
Дата: 01.10.02 15:53
Оценка:
Здравствуйте GYB, Вы писали:

ПК>>Некоторым зарегестрированным пользователям, отвечающим в этом форуме, нравится, когда им за полезные ответы ставят оценки <...>


GYB>Неудивительно, что у некоторых пользователей форума, часто напоминающих об этом, скоро счётчик оценок обнулится из-за переполнения :)))


Мы поправим эту несправедливость сами: пойду поставлю __Nikolay заслуженную галочку :-)
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[7]: #include <valarray>
От: Павел Кузнецов  
Дата: 01.10.02 15:56
Оценка: +2
Здравствуйте GYB, Вы писали:

GYB>Неудивительно, что у некоторых пользователей форума, часто напоминающих об этом, скоро счётчик оценок обнулится из-за переполнения :)))


А если серьезно, то я сейчас потихоньку занимаюсь составлением C/C++ Q&A. Для определения наиболее востребованных вопросов/ответов вполне естественно смотреть на рейтинги соответствующих сообщений. Если оценки игнорируются спрашивающими, об уровне интереса к вопросу/полезности ответа приходится только догадываться...
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[8]: #include <valarray>
От: TruthfulBob  
Дата: 05.11.04 18:21
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Здравствуйте GYB, Вы писали:


GYB>>Неудивительно, что у некоторых пользователей форума, часто напоминающих об этом, скоро счётчик оценок обнулится из-за переполнения


ПК>А если серьезно, то я сейчас потихоньку занимаюсь составлением C/C++ Q&A. Для определения наиболее востребованных вопросов/ответов вполне естественно смотреть на рейтинги соответствующих сообщений. Если оценки игнорируются спрашивающими, об уровне интереса к вопросу/полезности ответа приходится только догадываться...

=====================
Вариант с #define NOMINMAX рекомендуется Microsoft, см. линк:
http://support.microsoft.com/default.aspx?scid=kb;en-us;143208
но не является наилучшим, т.к. применяется ко всему приложению в целом, а это может быть не всегда желательно.
Кстати баг возникает только в MFC приложениях.
Вариант:
#undef min
#undef max
работает локально для каждого отдельного класса. Проверено.
Поэтому полагаю, он наилучший.

Bye
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.