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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интересный способ инициализации 
:(
    Опции темы
SABROG
Дата 1.3.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Случайно наткнулся на одном форуме на такую штуку

Код

unsigned int tst = (1, 2, 3, 4);


Вопрос на проверку знаний C++. Не компилируя код, попробуйте ответить на следующие вопросы:
- скомпилируется ли это? будут ли warning'и?
- какое значение примет tst?
- как подобную запись можно трактовать с точки зрения компилятора. Т.е. объяснить происходящее.

З.Ы.: это не тест, не задачка и не лабораторная. Вопрос для тех кому просто интересно поразмышлять smile


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Alexiski
Дата 1.3.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сначала показалось, что скобки - фигурные. Ответ тогда резко другой..
PM MAIL   Вверх
mes
Дата 1.3.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(SABROG @  1.3.2009,  15:32 Найти цитируемый пост)
- как подобную запись можно трактовать с точки зрения компилятора. Т.е. объяснить происходящее.

Советую Вам почитать про оператор "," и ответы на все три вопроса станут очевидными.  smile 


--------------------
PM MAIL WWW   Вверх
nmn
Дата 1.3.2009, 16:45 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



будет 4
PM Skype   Вверх
SABROG
Дата 1.3.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(mes @  1.3.2009,  16:42 Найти цитируемый пост)
Советую Вам почитать про оператор "," и ответы на все три вопроса станут очевидными.

Да мне и так очевидно smile Просто сама странность подобной записи может натолкнуть на неправильные выводы.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 1.3.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



В данном контексте - нет никакого смысла в такой записи smile И ещё - вопрос начёт варнингов неккоректен. Ибо компилерозависимо.


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


любитель
****


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

Репутация: 144
Всего: 250



Цитата(SABROG @  1.3.2009,  15:50 Найти цитируемый пост)

Да мне и так очевидно smile 

тогда мне непонятно название темы...  инициализация тут (по отношению к результату содержимого скобок) не при чем.



--------------------
PM MAIL WWW   Вверх
SABROG
Дата 1.3.2009, 17:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(mes @ 1.3.2009,  17:02)
Цитата(SABROG @  1.3.2009,  15:50 Найти цитируемый пост)

Да мне и так очевидно smile 

тогда мне непонятно название темы...  инициализация тут (по отношению к результату содержимого скобок) не при чем.

Мне ничего более умного в голову не пришло. А интересен этот способ инициализации тем, что можно пустить человека по ложному следу, когда он начнет разбираться в чужих исходниках. Это конечно, если новичек. Мало ли зачем может пригодиться. Для тестов в универе и т.п.

Ну так не интересно, опять гуру повылазили и обсуждают некорректность сего задания. smile


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Torsten
Дата 2.3.2009, 12:11 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я бы заминусовал за такой код smile
Это из разряда, смотрите какой я дятел, вот я написал, а вы нубы теперь думайте как тут и что.
Понты, тупые понты.
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
SABROG
Дата 2.3.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(Torsten @ 2.3.2009,  12:11)
Я бы заминусовал за такой код smile
Это из разряда, смотрите какой я дятел, вот я написал, а вы нубы теперь думайте как тут и что.
Понты, тупые понты.

О как интересно. Меня обозвали дятлом и быком  smile  smile 

Никого обидеть не хотел, просто нашел интересную, видимо только для себя, фишку. Захотел поделиться.
Ладно, полезу-ка я туда откуда вылез  smile 


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
mes
Дата 2.3.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



 smile 
Цитата(SABROG @  2.3.2009,  11:21 Найти цитируемый пост)
Меня обозвали дятлом и быком

про дятла нашел, а вот про быка где ?! 
 smile 

Это сообщение отредактировал(а) mes - 2.3.2009, 13:06


--------------------
PM MAIL WWW   Вверх
zim22
Дата 2.3.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

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



насколько я помню, или у Саттера или Мейерса было что-то следующего:
Код
int x = 0, res = x;
    while (res < 100)
        x = 5,
        cout << x,
        ++x,
        res += x,
        
        cout << res,
        cout << endl;


а вообще ничего тут сложного нет. обычный оператор "запятая". Как он работает можно усвоить за 5 мин.
Цитирую: "Оператор запятая (comma expression) используется в случаях, где ряд выражений отделяется запятыми. Выражения обрабатываются слева направо. Результатом оператора запятая (,) является правый операнд. Если правый операнд является l-значением, результат также будет l-значением."

Его "фишка" в том, что выражения 100% будут выполняться слева направо.


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


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(mes @  2.3.2009,  13:06 Найти цитируемый пост)
про дятла нашел, а вот про быка где ?! 

Неудачно сравнил, хотел сказать, что быки понтуются, но они обычно бычат. Значит я фраер  smile 

Цитата(zim22 @  2.3.2009,  13:09 Найти цитируемый пост)
Результатом оператора запятая (,) является правый операнд. Если правый операнд является l-значением, результат также будет l-значением."

А вот это уже интересное применение. Похожую тему на RSDN нашел http://www.rsdn.ru/forum/message/1387684.flat.aspx#1387684

Это сообщение отредактировал(а) SABROG - 2.3.2009, 13:32


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zim22
Дата 2.3.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

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



Цитата(SABROG @  2.3.2009,  13:24 Найти цитируемый пост)
А вот это уже интересное применение.

угу. можно писать такой извращённый код:
Код

int x = 5, y = 7;
(5, x, x) = *&++*&--*&++*&--*&++*&--y;

 smile 


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


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Во, еще вопрос придумал. А теперь тот же код, но без скобок. Что будет в tst  smile ?
Код

unsigned int tst = 1, 2, 3, 4;



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 2.3.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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




 ! 
Любитель
Тему про быков и пр. закрываем!



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


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



SABROG, без скобок мягкотелый ругаетсо. оно и ясно.

Добавлено через 3 минуты и 26 секунд
Борману тоже не нравится  smile 
PM MAIL   Вверх
mes
Дата 2.3.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(SABROG @  2.3.2009,  12:40 Найти цитируемый пост)
А теперь тот же код, но без скобок. Что будет в tst  smile ?

a оно скомпилится ?!


--------------------
PM MAIL WWW   Вверх
SABROG
Дата 2.3.2009, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(mes @ 2.3.2009,  13:52)
Цитата(SABROG @  2.3.2009,  12:40 Найти цитируемый пост)
А теперь тот же код, но без скобок. Что будет в tst  smile ?

a оно скомпилится ?!

Нет, гнутый тоже плюётся. Странно, что такому детей тут учат http://users.msu.dubna.ru/~ovg/c++course/p1-3.html


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zim22
Дата 2.3.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

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



Пример из MSND
Код
// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
   int i = 10, b = 20, c= 30;
   i = b, c;
   printf("%i\n", i);

   i = (b, c);
   printf("%i\n", i);
}


У меня есть подозрение, что это разные ситуации.
В первом случае
Код
unsigned int tst = 1, 2, 3, 4;

происходит инициализация переменной (copy-initialization), при которой подразумевается использование знака равенства.
инициализация же не является присвоением.
во втором же 
Код
 i = b, c;

 вызывается оператор присвоения.

Это сообщение отредактировал(а) zim22 - 2.3.2009, 14:19


--------------------
PM MAIL   Вверх
SABROG
Дата 2.3.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



А гнутый такое не хавает:

Код

    unsigned int a = 1, b = 2, c = 3;
    unsigned int tst = a, b, c;


Код

error: redeclaration of `unsigned int b'
error: `unsigned int b' previously declared here
error: redeclaration of `unsigned int c'
error: `unsigned int c' previously declared here


А такое хавает  smile 
Код

    unsigned int a = 1, b = 2, c = 3;
    a = a, b, c;


Это сообщение отредактировал(а) SABROG - 2.3.2009, 14:37


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
mes
Дата 2.3.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(SABROG @  2.3.2009,  12:54 Найти цитируемый пост)
Странно, что такому детей тут учат: http://users.msu.dubna.ru/~ovg/c++course/p1-3.html


Цитата(zim22 @  2.3.2009,  13:19 Найти цитируемый пост)
У меня есть подозрение, что это разные ситуации.

ага, разные и тут в статье правильно написано

а вот ниже, имхо, немножко вводят заблуждение :
Цитата

 Вот в таких случаях и пишут что-нибудь в таком духе:
f(( (i=1), (j=2), i*j ) ));
То, что вы видите - вызов функции с одним аргументом. В конечном итоге, в качестве аргумента функция получит i*j. И правила языка не нарушены, и несколько выражений стоит. Эта же строка показывает и второе полезное применение этого оператора - мы прямо в вызове функции присвоили новые значения переменным i и j, и только после этого сосчитали значение аргумента i*j; То есть, с помощью оператора запятая можно гарантировать, что обработаются все операнды, причем обработаются они последовательно - слева направо. 

не знаю как на Си, a на С++ подобный пример даст UB.

Это сообщение отредактировал(а) mes - 2.3.2009, 14:39


--------------------
PM MAIL WWW   Вверх
vinter
Дата 2.3.2009, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(mes @  2.3.2009,  15:35 Найти цитируемый пост)
a на С++ подобный пример даст UB.

с чего бы?

Цитата(SABROG @  2.3.2009,  15:33 Найти цитируемый пост)
А гнутый такое не хавает:

а должен, может я знаю что я делаю и мне надо именно так.
Цитата(mes @  2.3.2009,  14:52 Найти цитируемый пост)
a оно скомпилится ?!

а почему нет?


--------------------
Мой блог
PM MAIL WWW   Вверх
SABROG
Дата 2.3.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата(vinter @  2.3.2009,  14:47 Найти цитируемый пост)
а должен, может я знаю что я делаю и мне надо именно так.

Наверное, все-таки не должен, т.к. возникает двойная трактовка. Приходится ему явно говорить мол "Вась, это не декларация"

В общем вот что получается:
Код

    unsigned tst1, tst2;
    tst1 = 1, 2, 3; // tst1 == 1
    tst2 = (1, 2, 3); // tst2 == 3


Это сообщение отредактировал(а) SABROG - 2.3.2009, 15:17


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
mes
Дата 2.3.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(vinter @  2.3.2009,  13:47 Найти цитируемый пост)

с чего бы?


vinter, это из той же оперы которую мы на днях обсуждали. В данном случае запятая есть разделитель аргументов, а не operator ,(); 
а в функции порядок вычисления аргументов стандартом не определяется и следовательно хотя бы одноразовое изменение и двойное употребление одной и той же переменной ведет к UB.



Цитата(vinter @  2.3.2009,  13:47 Найти цитируемый пост)

а почему нет? 

потому что в декларации ","  это тоже не operator,() ,  так же как "=" в декларации это не присваивание.

Это сообщение отредактировал(а) mes - 2.3.2009, 15:23


--------------------
PM MAIL WWW   Вверх
vinter
Дата 2.3.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(mes @  2.3.2009,  16:19 Найти цитируемый пост)
В данном случае запятая есть разделитель аргументов, а не operator ,(); 

это ты почему так решил? там скобки.

Цитата(mes @  2.3.2009,  16:19 Найти цитируемый пост)
потому что в декларации ","  это тоже не operator,()

ок


--------------------
Мой блог
PM MAIL WWW   Вверх
mes
Дата 2.3.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(vinter @  2.3.2009,  14:34 Найти цитируемый пост)
это ты почему так решил? там скобки.

ну и что толку от них ?! откуда  взять уверенность, что первым посчитается 1й параметр, а не 2й или 3й ?

Добавлено @ 16:01
вот запустил такой тестик на gcc
Код

#include <iostream>
#include <vector>
using namespace std;

void f (int a, int b, int c, int d)
{
    cout << a <<" " <<b << " "<<c<<" "<<d<<endl;
}
int main()
{
int i =2, j=3;
f((i=4),(i*j),(j=5),(j*i));

   system ("pause");
}

выдает: 4 10 5 6
чем и оправдывает "предположение" smile 
(расчет аргументов происходит в обратном порядке..)

Это сообщение отредактировал(а) mes - 2.3.2009, 16:03


--------------------
PM MAIL WWW   Вверх
vinter
Дата 2.3.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(mes @  2.3.2009,  16:56 Найти цитируемый пост)
ну и что толку от них ?! откуда  взять уверенность, что первым посчитается 1й параметр, а не 2й или 3й ?

там нет никаких 1,2,3,4 параметров. Там есть один большой параметр - скобка

Добавлено через 3 минуты и 28 секунд
mes, ты вообще не то сделал.
вот так вызывай
Код

f(((i=4),(i*j),(j=5),(j*i)));



--------------------
Мой блог
PM MAIL WWW   Вверх
mes
Дата 2.3.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(vinter @  2.3.2009,  15:03 Найти цитируемый пост)
там нет никаких 1,2,3,4 параметров. Там есть один большой параметр - скобка 

оооп. извиняюсь..то что там только один большой параметр я не досмотрел..  smile 


--------------------
PM MAIL WWW   Вверх
Dem_max
Дата 2.3.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Цитата

(i=4)

это помоему локальное присвоение - аргумент по умолчанию.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
mes
Дата 2.3.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(Dem_max @  2.3.2009,  15:52 Найти цитируемый пост)

это помоему локальное присвоение - аргумент по умолчанию. 

не понял .. о чем Вы ?


--------------------
PM MAIL WWW   Вверх
zim22
Дата 2.3.2009, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

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



mes, я предположу, что Dem_max имел ввиду объявление функции с параметрами по умолчанию.


--------------------
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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