Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра в С++, 7-й тайм 
V
    Опции темы
bsa
Дата 31.8.2007, 15:22 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Вообще-то речь идет про анонимные типы. Т.е. enum X { x = 10; }; - это не анонимный тип
PM   Вверх
UnrealMan
Дата 1.9.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(FiMa1 @  31.8.2007,  15:22 Найти цитируемый пост)
Так же стандарту не соответствует Borland C++ Builder Enterprise Suite Version 6.0

Помнится, у борланда вообще какие-то странности с enum-ами были. Попробуй в нём скомпилировать такой код

Код

#include <iostream>
#include <ostream>

enum En { zero };

void f(...) { std::cout << "f(...)" << std::endl; }
void f(int *) { std::cout << "f(int *)" << std::endl; }

int main()
{
    f(zero);
    f(zero * 0);
    f(1-1);
}

Что вывелось на экран?

Это сообщение отредактировал(а) UnrealMan - 1.9.2007, 10:16
PM MAIL   Вверх
Любитель
Дата 1.9.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



 smile 
Цитата(UnrealMan @  1.9.2007,  10:14 Найти цитируемый пост)
#include <ostream>

Зачем?


--------------------
PM MAIL ICQ Skype   Вверх
UnrealMan
Дата 1.9.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(Любитель @  1.9.2007,  16:30 Найти цитируемый пост)
Зачем? 

Для std::endl smile

PM MAIL   Вверх
bsa
Дата 1.9.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(UnrealMan @ 1.9.2007,  17:13)
Цитата(Любитель @  1.9.2007,  16:30 Найти цитируемый пост)
Зачем? 

Для std::endl smile

iostream сам подключает ostream и istream.
PM   Вверх
Mayk
Дата 1.9.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(bsa @  2.9.2007,  00:00 Найти цитируемый пост)

iostream сам подключает ostream и istream.

Формально говоря, если это и следует из текущего стандарта, то очень уж не явно. 

Это сообщение отредактировал(а) Mayk - 1.9.2007, 21:42


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bsa
Дата 1.9.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



а разве std::cout, std::cerr и std::cin не экземпляры потомков соответствующих классов?
PM   Вверх
UnrealMan
Дата 1.9.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(bsa @  1.9.2007,  21:00 Найти цитируемый пост)
iostream сам подключает ostream и istream. 

Это естественная, но необязательная реализация smile
PM MAIL   Вверх
Mayk
Дата 1.9.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(bsa @  2.9.2007,  01:45 Найти цитируемый пост)
а разве std::cout, std::cerr и std::cin не экземпляры потомков соответствующих классов? 

Код

//     Header <iostream> synopsis

           namespace std {
             extern istream            cin;
             extern ostream            cout;
             extern ostream            cerr;
             extern ostream            clog;

               extern     wistream       wcin;
               extern     wostream       wcout;
               extern     wostream       wcerr;
               extern     wostream       wclog;
           }

вот что говорит стандарт.
Код

           namespace std {
 class istream;
 class ostream;
class wistream;
class wostream;

             extern istream            cin;
             extern ostream            cout;
             extern ostream            cerr;
             extern ostream            clog;

               extern     wistream       wcin;
               extern     wostream       wcout;
               extern     wostream       wcerr;
               extern     wostream       wclog;
           }

Вполне себе собирается. Это во-первых.

Во-вторых. endl не является членом [io]stream'а. Поэтому даже если в iostream определяется ostream, это вовсе не факт что endl в нём  объявлен. 
Цитата(UnrealMan @  2.9.2007,  02:13 Найти цитируемый пост)
Цитата(bsa @  1.9.2007,  21:00 Найти цитируемый пост)
iostream сам подключает ostream и istream. 

Это естественная, но необязательная реализация


Правда, в стандарте есть пример в разделе 27.6.1.3
Код

               #include <iostream> //единтсвенный #include

               int main()
               {
                 using namespace std;
                 const int line_buffer_size = 100;

                   char buffer[line_buffer_size];
                   int line_number = 0;
                   while (cin.getline(buffer, line_buffer_size, '\n') || cin.gcount()) {
                     int count = cin.gcount();
                     if (cin.eof())
                                                          // cin.fail() is false
                       cout << "Partial final line";
                     else if (cin.fail()) {
                       cout << "Partial long line";
                       cin.clear(cin.rdstate() & ~ios::failbit);
                     } else {
                                               // Don't include newline in count
                       count--;
                       cout << "Line " << ++line_number;
                     }
                     cout << " (" << count << " chars): " << buffer << endl; //<<<<<<<<<<<<<<
                   }
               }

из которого можно сделать вывод о том что endl в iostream'е таки подразумевается.
[что любопытно, в примере из раздела 14.6 используется cout << ... << '\n']

Это сообщение отредактировал(а) Mayk - 1.9.2007, 22:25


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
UnrealMan
Дата 2.9.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(Mayk @  1.9.2007,  23:21 Найти цитируемый пост)
Правда, в стандарте есть пример в разделе 27.6.1.3

Ну, в стандарте много незаконченных примеров smile 

Это сообщение отредактировал(а) UnrealMan - 2.9.2007, 10:05
PM MAIL   Вверх
The Thing
Дата 3.9.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 286
Регистрация: 6.9.2004

Репутация: нет
Всего: 3



скажите, а что в коде означает символ тильда "~i"?
Код

c ^ a[~i + 1]) 



--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
Lazin
Дата 3.9.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



The Thing, ~ - отрицание, так-как i - отрицательное число, то ~i = abs(i) - 1 
~(-1) = 0
~(-2) = 1 итд
а xor там для сравнения
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0928 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.