За что мы любим Хабрахабр?
От: Qbit86 Кипр
Дата: 01.02.12 04:44
Оценка: :))) :))) :))) :))) :))) :))
Разумеется, за высокую квалификацию участников сообщества и выдающееся качество статей.

Константный указатель на неконстантный объект это:

26.52%
(148) Foo *const foo

41.04%
(229) const Foo *foo

http://habrahabr.ru/blogs/cpp/137375/


Эпик фейспалм. Где моя жидкость для розжига межресурсовой ненависти.
Глаза у меня добрые, но рубашка — смирительная!
Re: За что мы любим Хабрахабр?
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.12 05:00
Оценка: 2 (2) +16 :)))
Здравствуйте, Qbit86, Вы писали:

Q>Разумеется, за высокую квалификацию участников сообщества и выдающееся качество статей.


Ну не только, не только за это.
Еще за вот это:

Доступ к публикации ограничен
Вы пытаетесь открыть страницу, доступную только подписчикам блога «C++».

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: За что мы любим Хабрахабр?
От: William_X  
Дата: 01.02.12 06:36
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Qbit86, Вы писали:


Q>>Разумеется, за высокую квалификацию участников сообщества и выдающееся качество статей.


J>Ну не только, не только за это.

J>Еще за вот это:
J>

J>Доступ к публикации ограничен
J>Вы пытаетесь открыть страницу, доступную только подписчикам блога «C++».

J>

Вроде бы уже проблему можно решить — есть read-only регистрация.
Re[2]: За что мы любим Хабрахабр?
От: Qbit86 Кипр
Дата: 01.02.12 07:28
Оценка: :)
Здравствуйте, jazzer, Вы писали:

J>Еще за вот это:

J>Доступ к публикации ограничен


Святые, незамутнённые люди!

J>Вы пытаетесь открыть страницу, доступную только подписчикам блога «C++».


Это же закрытое сообщество элитных айтишников!
Глаза у меня добрые, но рубашка — смирительная!
Re: За что мы любим Хабрахабр?
От: solid_snake  
Дата: 01.02.12 07:46
Оценка: 1 (1) +4 :))) :))) :)))
Здравствуйте, Qbit86, Вы писали:

Q>[q]

Q>Константный указатель на неконстантный объект это:

Q>26.52%

Q>(148) Foo *const foo

Q>41.04%

Q>(229) const Foo *foo

Вот поэтому я и бросил C++.
Re[2]: За что мы любим Хабрахабр?
От: Qbit86 Кипр
Дата: 01.02.12 07:56
Оценка:
Здравствуйте, solid_snake, Вы писали:

_>Вот поэтому я и бросил C++.


А я вот наоборот недавно вернулся обратно грызть кактус. Жизнь заставит — ещё и не так раскорячишься.
Глаза у меня добрые, но рубашка — смирительная!
Re: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 01.02.12 07:57
Оценка: -4 :))) :)
Здравствуйте, Qbit86, Вы писали:

Q>

Q>Константный указатель на неконстантный объект это:

Q>26.52%
Q>(148) Foo *const foo

Q>41.04%
Q>(229) const Foo *foo

Q>http://habrahabr.ru/blogs/cpp/137375/


А как, по твоему, верно?
бчычно, под "константный указатель" в С++ понимают не указатель, который нельзя менять, а указатель, при доступе через который нелзя менять указуемое.

То есть "константный указатель, на неконстантный объект" это что-то вроде:
foo object;
const foo* pointer = &object;

аналогичная терминология используется и в случае "константных ссылок", кстати
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: За что мы любим Хабрахабр?
От: DarkTranquillity  
Дата: 01.02.12 07:58
Оценка: :)
Здравствуйте, solid_snake, Вы писали:

_>Здравствуйте, Qbit86, Вы писали:


Q>>[q]

Q>>Константный указатель на неконстантный объект это:

Q>>26.52%

Q>>(148) Foo *const foo

Q>>41.04%

Q>>(229) const Foo *foo

_>Вот поэтому я и бросил C++.


А что поднял?
Re[2]: const_iterator
От: Qbit86 Кипр
Дата: 01.02.12 08:03
Оценка:
Здравствуйте, Erop, Вы писали:

E>бчычно, под "константный указатель" в С++ понимают не указатель, который нельзя менять, а указатель, при доступе через который нелзя менять указуемое.


А как тогда называют указатель, который нельзя менять?

E>бчычно, под "константный указатель" в С++ понимают не указатель, который нельзя менять, а указатель, при доступе через который нелзя менять указуемое.


Когда говорят не просто «указатель», а «указатель на» — становится понятно, что работает нормальная семантика.

E>аналогичная терминология используется и в случае "константных ссылок", кстати ;)


И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: За что мы любим Хабрахабр?
От: elw00d Россия http://elwood.su
Дата: 01.02.12 08:09
Оценка: 1 (1)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Qbit86, Вы писали:


Q>>

Q>>Константный указатель на неконстантный объект это:

Q>>26.52%
Q>>(148) Foo *const foo

Q>>41.04%
Q>>(229) const Foo *foo

Q>>http://habrahabr.ru/blogs/cpp/137375/


E>А как, по твоему, верно?

E>бчычно, под "константный указатель" в С++ понимают не указатель, который нельзя менять, а указатель, при доступе через который нелзя менять указуемое.

E>То есть "константный указатель, на неконстантный объект" это что-то вроде:
E>foo object;
E>const foo* pointer = &object;

E>аналогичная терминология используется и в случае "константных ссылок", кстати

нет же
говорят как раз "(не)константный указатель на (не)константный объект"
а про ссылку такого нельзя сказать только потому, что ссылка — всегда константна по своей сути (инициализируется один раз и не может измениться)
поэтому "(не)константная ссылка" == "константная ссылка на (не)константный объект"
Re[2]: За что мы любим Хабрахабр?
От: Хвост  
Дата: 01.02.12 08:09
Оценка: 2 (2) +1 :)
Здравствуйте, Erop, Вы писали:

E>бчычно, под "константный указатель" в С++ понимают не указатель, который нельзя менять, а указатель, при доступе через который нелзя менять указуемое.

fail.

E>То есть "константный указатель, на неконстантный объект" это что-то вроде:
E>foo object;
E>const foo* pointer = &object;

fail.


E>аналогичная терминология используется и в случае "константных ссылок", кстати

нифига она не аналогичная. ссылка по определению всегда константна, поэтому "константная ссылка" это всегда ссылка на константу, указатель же в отношении собственной константности вариативен, поэтому "константный указатель" это именно константный указатель. И да, в любом букваре по С++ это разжевывается.

p.s. хабрахабр это детское уг., статьи уровня xakep.ru
People write code, programming languages don't.
а
Re[3]: const_iterator
От: Erop Россия  
Дата: 01.02.12 08:12
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>А как тогда называют указатель, который нельзя менять?

Ну, например, так и называют. Но указатель -- это это же значение, а не объект с какиими-тто состояниями. В каком-то смысле никакой указатель нельзя менть, так же, как и число пять нельзя менять, например...

Q>Когда говорят не просто «указатель», а «указатель на» — становится понятно, что работает нормальная семантика.


Мне не понятно. Мне вообще не ясно, зачем С++ описывать конструкциями на русском, а не на С++...
Но сложившаяся терминология -- это то, что константный указатель -- это указатель на объект, через который нет модифицирующего доступа к указуемому...
и да, под "указатель" обычно понимают значение, а не переменную...

Q>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».


Зачем? говори сразу на С++.
В любом случае юзать терминологогия, которую не все понимают одинаково -- себе дороже.
Кстати, помогите моему склерозу. Разве константная ссылка -- это не термин из стандарта?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: const_iterator
От: Erop Россия  
Дата: 01.02.12 08:13
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу»


Всё равно не понятно, зачем юзать необщепринятую терминологию, но если уж юзаешь, то почему "... на константу" а не "итератор констант"?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 01.02.12 08:15
Оценка:
Здравствуйте, elw00d, Вы писали:


E>нет же

E>говорят как раз "(не)константный указатель на (не)константный объект"
E>а про ссылку такого нельзя сказать только потому, что ссылка — всегда константна по своей сути (инициализируется один раз и не может измениться)
E>поэтому "(не)константная ссылка" == "константная ссылка на (не)константный объект"

Это очен неудобно и запутанно, так как указатель, например, может быть умным. Или итератором или ещё чем. И если у тебя "константный итероатор элементов вектора" и "константный указатель на элемент вектора" обозначают разное, то это верный путь в никуда...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: const_iterator
От: о_О
Дата: 01.02.12 08:16
Оценка:
Здравствуйте, Erop, Вы писали:

я смотрю ты тоже голосовал...
Re[3]: За что мы любим Хабрахабр?
От: о_О
Дата: 01.02.12 08:18
Оценка: 1 (1) +4
Q>Это же закрытое сообщество элитных айтишников!

Илитных. fixed.
Re[3]: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 01.02.12 08:18
Оценка:
Здравствуйте, Хвост, Вы писали:

Х>нифига она не аналогичная. ссылка по определению всегда константна, поэтому "константная ссылка" это всегда ссылка на константу, указатель же в отношении собственной константности вариативен, поэтому "константный указатель" это именно константный указатель.


Как интересно. Расскажи теперь, пожалуйста, про отличия std::vector<T>::const_iterator и const T*

Х>И да, в любом букваре по С++ это разжевывается.


Советую перейти от букварей к стандарту языка. В принципе тоже можно к любому из...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Илита
От: Qbit86 Кипр
Дата: 01.02.12 08:31
Оценка:
Здравствуйте, о_О, Вы писали:

Q>>Это же закрытое сообщество элитных айтишников!


о_О>Илитных. fixed.


Да, я хотел было прибегнуть к этому эрративу, но решил, что это придаст несколько неподходящий оттенок исходному посланию. Тогда уж ойтишнегов, как и хацкеров.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: T const *
От: Qbit86 Кипр
Дата: 01.02.12 08:35
Оценка:
Здравствуйте, Erop, Вы писали:

E>Расскажи теперь, пожалуйста, про отличия std::vector<T>::const_iterator и const T* ;) :beer:


Это как раз одна из причин, почему я пишу const суффиксом: «T const *» вместо эквивалентного «const T*». В этом случае фрагменты «const <pointer>» и «const_iterator» смотрятся единообразно и читаются справа налево при переводе с языка C++ на язык естественный.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: T const *
От: Erop Россия  
Дата: 01.02.12 08:39
Оценка: -1 :)
Здравствуйте, Qbit86, Вы писали:

E>>Расскажи теперь, пожалуйста, про отличия std::vector<T>::const_iterator и const T*


Q>Это как раз одна из причин, почему я пишу const суффиксом: «T const *» вместо эквивалентного «const T*». В этом случае фрагменты «const <pointer>» и «const_iterator» смотрятся единообразно и читаются справа налево при переводе с языка C++ на язык естественный.


Так что там у теюя выходит? const_iterator -- неконстантный, или T const*, таки константный? Или между ними есть какая-то принципиальная разница в семантике?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: const_iterator
От: Qbit86 Кипр
Дата: 01.02.12 08:41
Оценка:
Здравствуйте, Erop, Вы писали:

E>Но указатель -- это это же значение, а не объект с какиими-тто состояниями. В каком-то смысле никакой указатель нельзя менть, так же, как и число пять нельзя менять, например...


В каком таком «каком-то» смысле указатель нельзя менять? Был, например, (неконстантный) указатель со значением адреса 0xA1B3C5D4, стал указателем со значением 0xB2C4D6E7. Число пять — литерал, это вообще rvalue.

E>Кстати, помогите моему склерозу. Разве константная ссылка -- это не термин из стандарта?


Константная ссылка разночтений не вызывает. Но я всё равно называю её ссылкой на константу.
Глаза у меня добрые, но рубашка — смирительная!
Re: За что мы любим Хабрахабр?
От: Философ Ад http://vk.com/id10256428
Дата: 01.02.12 08:42
Оценка: :)
>Константный указатель на неконстантный объект ...

//...инкапсулирующий неконстантный указатель на константный объект....

ТЬФУ!
ГАДОСТЬ!

Это одна из причин того, что я всегда недолюбливал C++...
Всё сказанное выше — личное мнение, если не указано обратное.
Re[6]: T const *
От: Qbit86 Кипр
Дата: 01.02.12 08:46
Оценка:
Здравствуйте, Erop, Вы писали:

E>Так что там у теюя выходит? const_iterator -- неконстантный, или T const*, таки константный? Или между ними есть какая-то принципиальная разница в семантике? ;)


Использую такую нотацию, которая допускает чтение справа налево.

const_iterator — неконстантный итератор на константу.
const_iterator const — константный итератор на константу.
const const_iterator — тоже константный итератор на константу (не использую такую нотацию).
T const* — неконстантный указатель на константу.
const T* — тоже неконстантный указатель на константу (не использую такую нотацию).
T* const — константный указатель на неконстанту.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: const_iterator
От: Erop Россия  
Дата: 01.02.12 08:56
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>В каком таком «каком-то» смысле указатель нельзя менять? Был, например, (неконстантный) указатель со значением адреса 0xA1B3C5D4, стал указателем со значением 0xB2C4D6E7. Число пять — литерал, это вообще rvalue.


Обычно, кога говорят "число", то имеют в виду не числовую переменную, сожержащую какое-то значение, а само значение -- число. С указателями есть аналогичная традиция.
Соответственно указатель 0xA1B3C5D4 тоже нельзя поменять, можно поменять занчение переменной, хранящей указатель.

Вообще, чаще всего тип переменных надо называть, когда это либо формальный параметр функции, либо тип возвращаемого значения. реже, когда это поле, и совсем редко нужен тип просто автоматической переменной.
Я так думаю, что терминология идёт из этого обстоятельства.

Q>Константная ссылка разночтений не вызывает. Но я всё равно называю её ссылкой на константу.

Это последовательно, но не общепринято...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: T const *
От: Erop Россия  
Дата: 01.02.12 08:58
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>const_iterator — неконстантный итератор на константу.

А если по-английски общаешься? Неужели не cont iterator называешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: За что мы любим Хабрахабр?
От: fin_81  
Дата: 01.02.12 08:59
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Константный указатель на неконстантный объект это:


Q>Foo *const foo

Q>const Foo *foo

Мне кажется здесь семантический оверхед на квадратный сантиметр букв и на человеческом языке и на языке программирования. Шаблон программирования "го-дипер". А какие проблемы решает эта конструкция, на сколько часто встречается такая конструкция, есть ли смысл заострять на этом внимание?
Re[5]: const_iterator
От: Erop Россия  
Дата: 01.02.12 09:07
Оценка: +2
Здравствуйте, о_О, Вы писали:

о_О>я смотрю ты тоже голосовал...

Я на ваш хабр не хожу...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: T const *
От: Qbit86 Кипр
Дата: 01.02.12 09:10
Оценка:
Здравствуйте, Erop, Вы писали:

Q>>const_iterator — неконстантный итератор на константу.

E>А если по-английски общаешься? Неужели не cont iterator называешь? :???:

По-английски я на тему C++ не общаюсь. Но, наверное, называл бы iterator to const. Даже если это непривычно адресату, он вряд ли перепутает.

Я ж не виноват, что в Си извращённые право-левые правила декларации, а не естественные?
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: [x]
От: Qbit86 Кипр
Дата: 01.02.12 09:11
Оценка:
Здравствуйте, Erop, Вы писали:

E>Я на ваш хабр не хожу... :xz:


Всё правильно сделал.
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: const_iterator
От: о_О
Дата: 01.02.12 09:12
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, о_О, Вы писали:


о_О>>я смотрю ты тоже голосовал...

E>Я на ваш хабр не хожу...

я тоже не хожу
Re[2]: За что мы любим Хабрахабр?
От: wander  
Дата: 01.02.12 09:36
Оценка: 1 (1)
Здравствуйте, fin_81, Вы писали:

f> Мне кажется здесь семантический оверхед на квадратный сантиметр букв и на человеческом языке и на языке программирования. Шаблон программирования "го-дипер". А какие проблемы решает эта конструкция, на сколько часто встречается такая конструкция, есть ли смысл заострять на этом внимание?


Встречается повсеместно. Оверхед в сравнении с более современными языками может и есть, но это здесь не играет роли.
avalon 1.0rc3 build 426, zlib 1.2.3
Re[2]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 01.02.12 10:07
Оценка: 1 (1) :)))
Здравствуйте, fin_81, Вы писали:

Q>>Константный указатель на неконстантный объект это:


Q>>Foo *const foo

Q>>const Foo *foo

_>А какие проблемы решает эта конструкция,


Позволяет ясно декларировать намерения автора кода.

_>на сколько часто встречается такая конструкция,


часто. Вот, специально для вас, строчка из проекта:
const boost::shared_ptr<const Alerts>&

_>есть ли смысл заострять на этом внимание?


Рассмотрим запись a->b
Известно, что если на вечеринке rsdn вы назовёте стрелочкой этот модификатор доступа к члену класса, то все на несколько секунд замолкнут и уставятся на вас, а кто-то в углу комнаты уронит бокал...
И каждый день — без права на ошибку...
Re[3]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 01.02.12 10:25
Оценка:
Здравствуйте, wander, Вы писали:

W>Встречается повсеместно. Оверхед в сравнении с более современными языками может и есть, но это здесь не играет роли.


Константный указатель (*const) часто встречается? Не верю. И этот опрос на хабре это подтверждает. Если и встречается, то эту конструкцию не понимают, а те кто понимает, то старается не использовать, чтобы не вводить в ступор своих коллег. Ссылки более понятны (семантически менее перегружены), покрывают практически весь функционал константных указателей, кроме NULL.

Если рассматривать чистый си, то там еще большие проблемы с const, особенно при работе со стандартными библиотеками, которые в основном решаются путем игнорирования или принудительного снятия константности.

И вообще const похожа целую философию, которую пытались перенять из функционального программирования. И как то она плохо вяжется с присваиванием переменных.
Re[2]: За что мы любим Хабрахабр?
От: Abyx Россия  
Дата: 01.02.12 10:40
Оценка:
Здравствуйте, Философ, Вы писали:

>>Константный указатель на неконстантный объект ...


Ф>//...инкапсулирующий неконстантный указатель на константный объект....


Ф>ТЬФУ!

Ф>ГАДОСТЬ!

Ф>Это одна из причин того, что я всегда недолюбливал C++...


да Вы просто ниасилили.
In Zen We Trust
Re[4]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 01.02.12 10:55
Оценка:
Здравствуйте, fin_81, Вы писали:

W>>Встречается повсеместно. Оверхед в сравнении с более современными языками может и есть, но это здесь не играет роли.


_>Константный указатель (*const) часто встречается? Не верю.


Поиск в проекте строки "* const " даёт 69 результатов для 790 файлов
Поиск в проекте строки "*const" даёт 763 результата в одном из файлов (больше нигде не встречается).
Всего в проекте 295163 строк.
Поиск по строке "class " выдаёт 1968 результатов.

Мда, действительно не часто. Оно и понятно. Делать указатель константным всё равно, что писать const перед интом в параметре функции:

void Foo(const int x);

И каждый день — без права на ошибку...
Re[3]: За что мы любим Хабрахабр?
От: Философ Ад http://vk.com/id10256428
Дата: 01.02.12 11:10
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Здравствуйте, Философ, Вы писали:


>>>Константный указатель на неконстантный объект ...


Ф>>//...инкапсулирующий неконстантный указатель на константный объект....


Ф>>ТЬФУ!

Ф>>ГАДОСТЬ!

Ф>>Это одна из причин того, что я всегда недолюбливал C++...


A>да Вы просто ниасилили.


Осилил, помогли осилить, а что-то и заставили осилить. Однако...
Всё сказанное выше — личное мнение, если не указано обратное.
Re: За что мы любим Хабрахабр?
От: MasterZiv СССР  
Дата: 01.02.12 10:18
Оценка: +2
On 02/01/2012 08:44 AM, Qbit86 wrote:

> Разумеется, за высокую квалификацию участников сообщества и выдающееся качество

> статей.

А я лично люблю его совсем за другое, вот за это:
-----------------------------------------------------

Доступ к публикации ограничен

Вы пытаетесь открыть страницу, доступную только подписчикам блога «C++».

Подписка на блог доступна любому пользователю, зарегистрированному на
Хабрахабре. Достаточно зайти на страницу блога и присоединиться к нему.

Если у вас есть аккаунт на Хабрахабре, вы можете войти под своим логином.

Подробнее о регистрации можно прочесть в разделе «Помощь».

-----------------------------------------------------

Ну так и пусть их себе там варятся...
Posted via RSDN NNTP Server 2.1 beta
Re[3]: За что мы любим Хабрахабр?
От: MasterZiv СССР  
Дата: 01.02.12 10:19
Оценка: +1 :)
On 02/01/2012 10:36 AM, William_X wrote:

> Вроде бы уже проблему можно решить — есть read-only регистрация.


и за это мы ТОЖЕ его любим.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: За что мы любим Хабрахабр?
От: MasterZiv СССР  
Дата: 01.02.12 10:23
Оценка: +1
On 02/01/2012 11:57 AM, Erop wrote:

> аналогичная терминология используется и в случае "константных ссылок", кстати


Аналогичной она не может быть в принципе, поскольку ссылка -- это константный,
автоматически разименуемый компилятором указатель, поэтому константностью
может в случае ссылки обладать только то, на что ссылка ссылается.
Там хоть как говори -- не запутаешься.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: const_iterator
От: MasterZiv СССР  
Дата: 01.02.12 10:24
Оценка:
On 02/01/2012 01:12 PM, о О wrote:

> E>Я на ваш хабр не хожу...

> я тоже не хожу

Дык, не пускають ...
Posted via RSDN NNTP Server 2.1 beta
Re[5]: T const *
От: MasterZiv СССР  
Дата: 01.02.12 10:26
Оценка:
> Это как раз одна из причин, почему я пишу const суффиксом: «T const *» вместо
> эквивалентного «const T*». В этом случае фрагменты «const <pointer>» и
> «const_iterator» смотрятся единообразно и читаются справа налево при переводе с
> языка C++ на язык естественный.

А я всегда пишу " const T* " и " const T& ", потому что для меня С++ --
естественный.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 01.02.12 10:30
Оценка:
Здравствуйте, B0FEE664, Вы писали:

_>>на сколько часто встречается такая конструкция,


BFE>часто. Вот, специально для вас, строчка из проекта:

BFE>const boost::shared_ptr<const Alerts>&

shared_ptr — это не только указатель (но и 3-4 кг диетического мяса), это управление владением/жизнью указываемого объекта, это логика поверх указателя.
Откуда эта строчка? Из объявления функции? Если да, то зачем эта обертка из shared_ptr? Не проще ли передать только {const Alerts&}? Можно больше контекста, чтобы понять осмысленность или бессмысленность этой конструкции?

[offtop]
Или вам нравится заострять внимание на "->" при любом удобном и не удобном случае? Говорят у кого чего болит, тот о том и говорит. Может следует сходит к тому кто может снять эту боль?
[/offtop]
Re[6]: const_iterator
От: LuciferSingapore Россия  
Дата: 01.02.12 10:52
Оценка:
Здравствуйте, Erop, Вы писали:

E>Соответственно указатель 0xA1B3C5D4 тоже нельзя поменять, можно поменять занчение переменной, хранящей указатель.


0xA1B3C5D4 это не "указатель", а адрес. Указатель — это переменная, которая его хранит.
Re[7]: const_iterator
От: Erop Россия  
Дата: 01.02.12 12:29
Оценка:
Здравствуйте, LuciferSingapore, Вы писали:

LS>0xA1B3C5D4 это не "указатель", а адрес. Указатель — это переменная, которая его хранит.


Почему переменная, а не знаение?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: const_iterator
От: о_О
Дата: 01.02.12 12:37
Оценка: +1 :)
Здравствуйте, MasterZiv, Вы писали:

MZ>On 02/01/2012 01:12 PM, о О wrote:


>> E>Я на ваш хабр не хожу...

>> я тоже не хожу

MZ>Дык, не пускають ...


илитный частни клубЪ. валенкам вход воспрещён (stars only )
Re[2]: За что мы любим Хабрахабр?
От: Banned by IT  
Дата: 01.02.12 12:47
Оценка:
Здравствуйте, solid_snake, Вы писали:

_>Вот поэтому я и бросил C++.

Не смог запомнить с какой стороны от звёздочки надо писать const?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: const_iterator
От: LuciferSingapore Россия  
Дата: 01.02.12 12:55
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, LuciferSingapore, Вы писали:


LS>>0xA1B3C5D4 это не "указатель", а адрес. Указатель — это переменная, которая его хранит.


E>Почему переменная, а не знаение?


Ну это как указатель на столбе, сейчас он показывает на один адрес, а можно его взять и повернуть, и он будет показывать на другой.
Re[4]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 01.02.12 13:45
Оценка:
Здравствуйте, fin_81, Вы писали:

_>>>на сколько часто встречается такая конструкция,

BFE>>часто. Вот, специально для вас, строчка из проекта:
BFE>>const boost::shared_ptr<const Alerts>&

_>shared_ptr — это не только указатель (но и 3-4 кг диетического мяса), это управление владением/жизнью указываемого объекта, это логика поверх указателя.

_>Откуда эта строчка? Из объявления функции?
да.

_> Если да, то зачем эта обертка из shared_ptr?

Alerts заказаны по new. Хранятся в одном из объектов. Могут быть созданы в другой нитке и переданы в этот объект навечно (время жизни до 4-x секунд).

_> Не проще ли передать только {const Alerts&}?

Проще-то оно может и проще, но надо обосновать.
Alerts хранятся как boost::shared_ptr<Alerts> в одном из объектов.
Alerts Могут быть NULL
Передаются в функцию объекта, которая не должна менять Alerts.
Теоретически этот объект может "захотеть" сохранить переданный параметр (с правами только на чтение) на некоторое время.
Кто первый из двух объектов хранящих указатель на Alerts будет уничтожен — не известно.

_> Можно больше контекста, чтобы понять осмысленность или бессмысленность этой конструкции?


Всё осмысленно. Я следую правилам компании здесь
Автор: B0FEE664
Дата: 24.10.11


_>[offtop]

_>Или вам нравится заострять внимание на "->" при любом удобном и не удобном случае? Говорят у кого чего болит, тот о том и говорит. Может следует сходит к тому кто может снять эту боль?
_>[/offtop]
Это переделанная шутка из какой-то книжки по программированию. Если не ошибаюсь, то про умные и гениальные указатели и их грани...
И каждый день — без права на ошибку...
Re[8]: const_iterator
От: . Великобритания  
Дата: 01.02.12 15:29
Оценка: +3
Здравствуйте, Erop, Вы писали:

LS>>0xA1B3C5D4 это не "указатель", а адрес. Указатель — это переменная, которая его хранит.

E>Почему переменная, а не знаение?
По определению. Хоть вики возьми "Указатель (поинтер, англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения — нулевого адреса.".
Или ты так, потроллить просто?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 01.02.12 15:50
Оценка:
Здравствуйте, B0FEE664, Вы писали:

_>> Не проще ли передать только {const Alerts&}?

BFE>Проще-то оно может и проще, но надо обосновать.
BFE>Alerts хранятся как boost::shared_ptr<Alerts> в одном из объектов.
Не мешает передавать как const T&

BFE>Alerts Могут быть NULL

ну тогда const T*, но не const T * const. Пока не вижу смысла в константном указателе.

BFE>Передаются в функцию объекта, которая не должна менять Alerts.

ничего не изменилось.

BFE>Теоретически этот объект может "захотеть" сохранить переданный параметр (с правами только на чтение) на некоторое время.

BFE>Кто первый из двух объектов хранящих указатель на Alerts будет уничтожен — не известно.
Так теоретически или все таки сохраняет? У объекта есть поле типа boost::shared_ptr<Alerts>?
И вообще странно, смотрится "константная ссылка на умный указатель", полный го-дипер . Здравый смысл подсказывает стараться избегать таких конструкций.
Re[2]: За что мы любим Хабрахабр?
От: squid  
Дата: 01.02.12 17:24
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ> On 02/01/2012 08:44 AM, Qbit86 wrote:


MZ> > Разумеется, за высокую квалификацию участников сообщества и выдающееся качество

MZ> > статей.

MZ> А я лично люблю его совсем за другое, вот за это:

MZ> -----------------------------------------------------

MZ> -----------------------------------------------------


MZ> Ну так и пусть их себе там варятся...


И что? регистрация 3 минуты занимает. В режиме read-only. Большинство блогов доступы без нее. Люблю хабр :P
avalon 1.0rc3 rev 419, zlib 1.2.3
Re: За что мы любим Хабрахабр?
От: 11molniev  
Дата: 01.02.12 17:25
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Разумеется, за высокую квалификацию участников сообщества и выдающееся качество статей.


Q>

Q>Константный указатель на неконстантный объект это:

Q>26.52%
Q>(148) Foo *const foo

Q>41.04%
Q>(229) const Foo *foo

Q>http://habrahabr.ru/blogs/cpp/137375/


Q>Эпик фейспалм. Где моя жидкость для розжига межресурсовой ненависти.


Ну не знаю. Голосавания и статьи там бред конечно, но вот коменты читать очень весело. Поднимает настроение.
Так что мой любимый сайт для отдыха))))
Re[6]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 01.02.12 17:49
Оценка:
Здравствуйте, fin_81, Вы писали:

_>>> Не проще ли передать только {const Alerts&}?

BFE>>Проще-то оно может и проще, но надо обосновать.
BFE>>Alerts хранятся как boost::shared_ptr<Alerts> в одном из объектов.
_>Не мешает передавать как const T&

BFE>>Alerts Могут быть NULL

_>ну тогда const T*, но не const T * const. Пока не вижу смысла в константном указателе.

Как это не поменялось? Теперь мы не знаем, когда T уничтожать

BFE>>Теоретически этот объект может "захотеть" сохранить переданный параметр (с правами только на чтение) на некоторое время.

BFE>>Кто первый из двух объектов хранящих указатель на Alerts будет уничтожен — не известно.
_>Так теоретически или все таки сохраняет? У объекта есть поле типа boost::shared_ptr<Alerts>?

В данном конкретном случае — теоретически. Но в других проектах я использовал коллекции умных указателей для кеширования данных. И вообще — это обычное дело, когда владельцы shared_ptr не знают о друг друге.

_>И вообще странно, смотрится "константная ссылка на умный указатель", полный го-дипер . Здравый смысл подсказывает стараться избегать таких конструкций.

Если сделать
typedef boost::shared_ptr<Alerts> SharedAlerts;
то запись
const SharedAlerts&
то запись не будет казаться чем-то странным.
И каждый день — без права на ошибку...
Re[7]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 01.02.12 18:38
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>>>Alerts Могут быть NULL

_>>ну тогда const T*, но не const T * const. Пока не вижу смысла в константном указателе.

BFE>Как это не поменялось? Теперь мы не знаем, когда T уничтожать


Если в этом методе не сохраняешь в полях объекта этот умный указатель, то с жизнью/владением объекта управляет вызывающий код, а в этом методе эта дополнительная логика и этот "го-дипер" пока не нужен.

_>>Так теоретически или все таки сохраняет? У объекта есть поле типа boost::shared_ptr<Alerts>?


BFE>В данном конкретном случае — теоретически. Но в других проектах я использовал коллекции умных указателей для кеширования данных. И вообще — это обычное дело, когда владельцы shared_ptr не знают о друг друге.


То есть в данном случае shared_prt избыточен и по количеству символов в объявлении функции, и по смысловой нагрузке.
На счет кеша, жизнью объектов кеша обычно управляет сам кеш, в соответствии с ограничениями по времени и/или по памяти (и тп), а не запрашивающий данные объект, то есть хранить shared_ptr в объекте для информации лежащей в кеше — это нарваться на нарушение ограничений кеша. Разве что weak_ptr с проверкой на валидность и перезапросом тех же данных.

_>>И вообще странно, смотрится "константная ссылка на умный указатель", полный го-дипер . Здравый смысл подсказывает стараться избегать таких конструкций.

BFE>Если сделать
BFE>typedef boost::shared_ptr<Alerts> SharedAlerts;
BFE>то запись
BFE>const SharedAlerts&
BFE>то запись не будет казаться чем-то странным.

Бритва Оккама "не плоди сущности без необходимости".
Re[3]: const_iterator
От: мыщъх США http://nezumi-lab.org
Дата: 01.02.12 18:49
Оценка:
Здравствуйте, Qbit86, Вы писали:


Q>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».



а чем отличается "ссылка на константу" от "константа на ссылку" ?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: За что мы любим Хабрахабр?
От: goondick  
Дата: 01.02.12 19:02
Оценка: 1 (1) +2 -1
Здравствуйте, Qbit86, Вы писали:

Q>Разумеется, за высокую квалификацию участников сообщества и выдающееся качество статей.


Q>

Q>Константный указатель на неконстантный объект это:

Q>26.52%
Q>(148) Foo *const foo

Q>41.04%
Q>(229) const Foo *foo

Q>http://habrahabr.ru/blogs/cpp/137375/


Q>Эпик фейспалм. Где моя жидкость для розжига межресурсовой ненависти.


более десяти лет писал несколько больших и маленких проектов на си++, ни разу не использовал константные указатели на неконстантные обьекты. У меня есть смутные сомнения, что квалификация программиста не меряется знанием такой замороченной сишной мути.
Re[2]: За что мы любим Хабрахабр?
От: m e  
Дата: 01.02.12 19:22
Оценка:
G>более десяти лет писал несколько больших и маленких проектов на си++, ни разу не использовал константные указатели на неконстантные обьекты. У меня есть смутные сомнения, что квалификация программиста не меряется знанием такой замороченной сишной мути.

концепция проста как паренная репа (а вовсе и не муть), а вот синтаксис ужасен, и по нему действительно ничего нельзя мерить
Re[9]: const_iterator
От: Erop Россия  
Дата: 02.02.12 03:59
Оценка:
Здравствуйте, ., Вы писали:

.>По определению. Хоть вики возьми "Указатель (поинтер, англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения — нулевого адреса.".

Прикольно. А как ты понимаешь себе тогда "множество указателей", например (в смысле std::set<T*>)?
Ещё интересно, поинмаешь ли ты "число", как переменную, которая содержит число? Можно ли сказать, что функция malloc возвращает указатель? И если да, то не затрудни ли тебя указать что там за переменная имеется в виду?

.>Или ты так, потроллить просто?


Часть "совсем не потроллить" закончилась на словах о том, что я не понимаю, зачем описывать С++ конструкции русским языком, а не использовать их сами по себе...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 02.02.12 04:51
Оценка: +1
Здравствуйте, squid, Вы писали:

S>И что? регистрация 3 минуты занимает. В режиме read-only. Большинство блогов доступы без нее. Люблю хабр :P


Не-не-не, регистраию ещё надо залужить. И не пускать меня любимого -- это довольно плохая стратегия склонить меня к регистрации на их говноресурсе
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: За что мы любим Хабрахабр?
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:16
Оценка:
Здравствуйте, Erop, Вы писали:

E>Как интересно. Расскажи теперь, пожалуйста, про отличия std::vector<T>::const_iterator и const T*


std::vector<T>::const_iterator — это объект-итератор частично повторяющий поведение указателя константный объект типа T, const T* — это указатель на константный объект типа T. Больше в букваре написано
Re[6]: T const *
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:25
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Так что там у теюя выходит? const_iterator -- неконстантный, или T const*, таки константный? Или между ними есть какая-то принципиальная разница в семантике?


Ну например:


std::vector<int>::const_iterator i;
const int* j = i; // Error!
const int* j = &*i; // Ok
const int* k = j; // Ok
i = k; // Error!
j = k; // Ok


Еще раз: const_iterator — это объект, а T const* — это указатель
Re[2]: За что мы любим Хабрахабр?
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:31
Оценка: 1 (1) +2
Здравствуйте, goondick, Вы писали:

G>более десяти лет писал несколько больших и маленких проектов на си++, ни разу не использовал константные указатели на неконстантные обьекты. У меня есть смутные сомнения, что квалификация программиста не меряется знанием такой замороченной сишной мути.


Это не муть, а элементарное удобство, которое потенциально позволит придушить баг в зародыше:


char* const buffer_begin = ...; // Константный указатель на начало буфера. Содержимое буфера можно изменить, сдвинуть нечаянно сам указатель - нет
Re[2]: За что мы любим Хабрахабр?
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:32
Оценка:
Здравствуйте, 11molniev, Вы писали:

1>Ну не знаю. Голосавания и статьи там бред конечно, но вот коменты читать очень весело. Поднимает настроение.

1>Так что мой любимый сайт для отдыха))))

Нравится смотреть как школьники какашками бросаются?
Re[4]: const_iterator
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:34
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>а чем отличается "ссылка на константу"


Тем, что так бывает.

М>от "константа на ссылку" ?


А так нет.
Re[3]: За что мы любим Хабрахабр?
От: Qbit86 Кипр
Дата: 02.02.12 06:38
Оценка:
Здравствуйте, MTD, Вы писали:

1>>Ну не знаю. Голосавания и статьи там бред конечно, но вот коменты читать очень весело. Поднимает настроение.

MTD>Нравится смотреть как школьники какашками бросаются? :xz:

Будет вам. Ну откуда же ещё, как не из этого замечательного ресурса, мы узнаем, как студенты-первокуры решают свои лабы по информатике, или, например, что думают по поводу авторского права их более молодые товарищи?
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: const_iterator
От: мыщъх США http://nezumi-lab.org
Дата: 02.02.12 06:55
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, мыщъх, Вы писали:


М>>а чем отличается "ссылка на константу"


MTD>Тем, что так бывает.


М>>от "константа на ссылку" ?


MTD>А так нет.

а давайте добавим это в язык и тогда будет
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[6]: const_iterator
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 06:55
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>а давайте добавим это в язык и тогда будет


Не надо — и так всего много
Re[5]: Буквари в топку.
От: Erop Россия  
Дата: 02.02.12 06:58
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>std::vector<T>::const_iterator — это объект-итератор частично повторяющий поведение указателя константный объект типа T, const T* — это указатель на константный объект типа T. Больше в букваре написано


Ну ты const_iterator как называешь-то? Особенно если по-английски общаешься? "Constant iterator" or "iterator of constants"?

И как по-русски?..

Я вот ни разу не встречал, чтобы были разночтения. "Константный итератор" -- это всегда итератор, который не позволяет менять данные к которым даёт доступ, и никак иначе. Надеюсь в твоём окружении ситуация в точности такая же. И если это так, то в чём разница между указателями и итераторами?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: T const *
От: Erop Россия  
Дата: 02.02.12 06:59
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Еще раз: const_iterator — это объект, а T const* — это указатель


Трудно тебе, наверное программировать-то в команде. Или ты фрилансер?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Буквари в топку.
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 07:02
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ну ты const_iterator как называешь-то? Особенно если по-английски общаешься? "Constant iterator" or "iterator of constants"?


Дословно, то есть std const iterator. Название не самое удачное, согласен.

E>И как по-русски?..


Стд конст итератор
Re[8]: T const *
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 07:04
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, MTD, Вы писали:


MTD>>Еще раз: const_iterator — это объект, а T const* — это указатель


E>Трудно тебе, наверное программировать-то в команде.


Нормально.

E>Или ты фрилансер?


Нет.
Re[7]: Буквари в топку.
От: Erop Россия  
Дата: 02.02.12 07:09
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Дословно, то есть std const iterator. Название не самое удачное, согласен.


О! я тоже против использования описательной терминологии! Но тут спор за то, что типа "константный указатель" -- это не указатель, который не даёт менять указуемое, а указатель, который нельзя менять сам по себе.
Я сослался на то, что со сылками всё определено вообще в стандарте, но оппоненты высказали довод, что ссылку менять всё равно нельзя, в отличии от указателя. Тогда я предложил объяснить мне, почему в итераторах константный итератор -- это тоже итератр, который не даёт менять итерируемые объекты, а вовсе и не итератор, который нелья итерировать...
В общем флейм.

E>>И как по-русски?..


MTD>Стд конст итератор


А почему стд, а не вектор?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: За что мы любим Хабрахабр?
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 02.02.12 07:27
Оценка:
Q>Будет вам. Ну откуда же ещё, как не из этого замечательного ресурса, мы узнаем, как студенты-первокуры решают свои лабы по информатике, или, например, что думают по поводу авторского права их более молодые товарищи?

http://habrahabr.ru/blogs/cpp/54762/

Это похоже на лабу по информатике? Или цикл статей про статический анализ C++?
Re[8]: Буквари в топку.
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 07:33
Оценка:
Здравствуйте, Erop, Вы писали:

E>В общем флейм.


Согласен.

E>>>И как по-русски?..


MTD>>Стд конст итератор


E>А почему стд, а не вектор?


Речь же шла просто об итераторе, без привязки к контейнеру, потому так.
Re[5]: Исключения
От: Qbit86 Кипр
Дата: 02.02.12 07:35
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

Q>>Будет вам. Ну откуда же ещё, как не из этого замечательного ресурса, мы узнаем, как студенты-первокуры решают свои лабы по информатике, или, например, что думают по поводу авторского права их более молодые товарищи?


EOH>http://habrahabr.ru/blogs/cpp/54762/

EOH>Это похоже на лабу по информатике? Или цикл статей про статический анализ C++?

Все эти вещи затеряются в потоке постов про придумывание паролей и лажовые бенчмарки, как слёзы в каплях дождя.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: За что мы любим Хабрахабр?
От: MTD https://github.com/mtrempoltsev
Дата: 02.02.12 07:38
Оценка: +1
Здравствуйте, Eye of Hell, Вы писали:

EOH>Это похоже на лабу по информатике? Или цикл статей про статический анализ C++?


Похоже на статью для новичков в C++
Re: За что мы любим Хабрахабр?
От: Dym On Россия  
Дата: 02.02.12 08:18
Оценка: +1
Q>

Константный указатель на неконстантный объект это:

Такие вопросы теперь голосованием решаются ? Жду голосования по таблице умножения
Счастье — это Glück!
Re[3]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 02.02.12 08:39
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>
char* const buffer_begin = ...; // Константный указатель на начало буфера. Содержимое буфера можно изменить, сдвинуть нечаянно сам указатель - нет


Хороший пример, но тоже редко встречающийся. Тут проблема путаницы понятий "объект-вуфер" и "объект-итератор" (указатель на начало). Это проблема самого языка и его базовых типов, проблема несовместимости абстракций языка и абстракций предметной области.

Буфер это скорее всего или-или:
char buffer[];
vector<char> buffer;
smart_array<char> buffer;

При таком объявлении к буферу нельзя применить адресную арифметику, сам буфер и его свойство "начало буфера" нельзя изменить.
Re[3]: За что мы любим Хабрахабр?
От: Mamut Швеция http://dmitriid.com
Дата: 02.02.12 08:42
Оценка:
G>>более десяти лет писал несколько больших и маленких проектов на си++, ни разу не использовал константные указатели на неконстантные обьекты. У меня есть смутные сомнения, что квалификация программиста не меряется знанием такой замороченной сишной мути.

MTD>Это не муть, а элементарное удобство, которое потенциально позволит придушить баг в зародыше:



MTD>
MTD>char* const buffer_begin = ...; // Константный указатель на начало буфера. Содержимое буфера можно изменить, сдвинуть нечаянно сам указатель - нет
MTD>



Только одному мне кажется, что это не удобство, а костыль?


dmitriid.comGitHubLinkedIn
Re[2]: За что мы любим Хабрахабр?
От: dilmah США  
Дата: 02.02.12 08:52
Оценка: :)))
_>Вот поэтому я и бросил C++.

молодец, а если теперь в него кто-нибудь наступит?
Re[5]: За что мы любим Хабрахабр?
От: Abyx Россия  
Дата: 02.02.12 08:56
Оценка: +1
Здравствуйте, Eye of Hell, Вы писали:

Q>>Будет вам. Ну откуда же ещё, как не из этого замечательного ресурса, мы узнаем, как студенты-первокуры решают свои лабы по информатике, или, например, что думают по поводу авторского права их более молодые товарищи?


EOH>http://habrahabr.ru/blogs/cpp/54762/


EOH>Это похоже на лабу по информатике? Или цикл статей про статический анализ C++?


после слова "трюки" читать расхотелось
In Zen We Trust
Re[4]: За что мы любим Хабрахабр?
От: squid  
Дата: 02.02.12 09:41
Оценка:
Здравствуйте, Erop, Вы писали:

E> S>И что? регистрация 3 минуты занимает. В режиме read-only. Большинство блогов доступы без нее. Люблю хабр :P


E> Не-не-не, регистраию ещё надо залужить. И не пускать меня любимого -- это довольно плохая стратегия склонить меня к регистрации на их говноресурсе


Для того чтобы писать и комментировать — да. Чтобы читать — просто регистрация. Последние месяца 3.
avalon 1.0rc3 rev 419, zlib 1.2.3
Re[3]: За что мы любим Хабрахабр?
От: Qbit86 Кипр
Дата: 02.02.12 09:43
Оценка: :)
Здравствуйте, dilmah, Вы писали:

_>>Вот поэтому я и бросил C++.

D>молодец, а если теперь в него кто-нибудь наступит?

Я наступил уже :(
Глаза у меня добрые, но рубашка — смирительная!
Re[8]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 02.02.12 09:43
Оценка:
Здравствуйте, fin_81, Вы писали:

BFE>>>>Alerts Могут быть NULL

_>>>ну тогда const T*, но не const T * const. Пока не вижу смысла в константном указателе.
BFE>>Как это не поменялось? Теперь мы не знаем, когда T уничтожать
_>Если в этом методе не сохраняешь в полях объекта этот умный указатель, то с жизнью/владением объекта управляет вызывающий код, а в этом методе эта дополнительная логика и этот "го-дипер" пока не нужен.

На самом деле всё наоборот. Если я вижу у функции простой указатель, вроде foo(const T* p) — то вот это настоящий "го-дипер", потому, что совершенно необходимо точно раскопать — кто же владеет этим объектом и кто его должен уничтожать. А если ещё foo — это виртуальный метод, то предстоит полный анализ всех вызовов и всех реализаций данной функции с целью найти возможную утечку. И эти раскопки aka "го-дипер" могут сопровождаться с необходимостью понять всю логику жизни всех объектов, кто вызывает и тех у кого вызывают данный метод. Видя же видя же shared_ptr ничего такого делать не нужно.

_>>>Так теоретически или все таки сохраняет? У объекта есть поле типа boost::shared_ptr<Alerts>?

BFE>>В данном конкретном случае — теоретически. Но в других проектах я использовал коллекции умных указателей для кеширования данных. И вообще — это обычное дело, когда владельцы shared_ptr не знают о друг друге.
_>То есть в данном случае shared_prt избыточен и по количеству символов в объявлении функции, и по смысловой нагрузке.

Про смысловую нагрузку я уже написал, а на счёт символов — на данном этапе развития техники нам нужно экономить время, а не пространство.

_>На счет кеша, жизнью объектов кеша обычно управляет сам кеш, в соответствии с ограничениями по времени и/или по памяти (и тп), а не запрашивающий данные объект, то есть хранить shared_ptr в объекте для информации лежащей в кеше — это нарваться на нарушение ограничений кеша. Разве что weak_ptr с проверкой на валидность и перезапросом тех же данных.


Я говорю про кэш результатов, а не данных. Это всё меняет.

_>Бритва Оккама "не плоди сущности без необходимости".

Для меня в данном контексте это звучит, как "не пользуйтесь столовыми приборами во время еды".
Мы же не анализ причин и поиском истыны занимаемся во время программирования, а создаём лишние сущности — последовательности байт.
И каждый день — без права на ошибку...
Re[3]: За что мы любим Хабрахабр?
От: Banned by IT  
Дата: 02.02.12 10:06
Оценка:
Здравствуйте, dilmah, Вы писали:

D>молодец, а если теперь в него кто-нибудь наступит?

Прострелит себе ногу разумеется.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: За что мы любим Хабрахабр?
От: Banned by IT  
Дата: 02.02.12 10:06
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>http://habrahabr.ru/blogs/cpp/54762/

EOH>Это похоже на лабу по информатике?
Ну не rocket science жеж.

EOH>Или цикл статей про статический анализ C++?

Ты про рекламу PVS Studio?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: За что мы любим Хабрахабр?
От: Тот кто сидит в пруду Россия  
Дата: 02.02.12 10:32
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

Q>>Будет вам. Ну откуда же ещё, как не из этого замечательного ресурса, мы узнаем, как студенты-первокуры решают свои лабы по информатике, или, например, что думают по поводу авторского права их более молодые товарищи?


EOH>http://habrahabr.ru/blogs/cpp/54762/


EOH>Это похоже на лабу по информатике?


Думаешь, на курсовик тянет? Вряд ли...

EOH>Или цикл статей про статический анализ C++?


Цикл статей про статический анализ C++ похож, разумеется, не на лабу, а на наглую рекламу
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[6]: Исключения
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 02.02.12 11:11
Оценка:
EOH>>http://habrahabr.ru/blogs/cpp/54762/
EOH>>Это похоже на лабу по информатике? Или цикл статей про статический анализ C++?
Q>Все эти вещи затеряются в потоке постов про придумывание паролей и лажовые бенчмарки, как слёзы в каплях дождя.

Ну на rsdn.ru тоже не каждый первый пост представляет интерес. Да, хабр более попули... популяри... вообщем на более широкую аудиторию рассчитан, но в целом там не так печально, как многие рассказывают. RSS их читать интересно.
Re[3]: const_iterator
От: B0FEE664  
Дата: 02.02.12 11:14
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».

«итератор на константу» — это ведь не верно в общем смысле
const_iterator может указывать на неконстантный объект, только вот его изменить через интерфейс const_iterator'a нельзя. Но сам объект от этого константным ведь не становится
И каждый день — без права на ошибку...
Re[6]: За что мы любим Хабрахабр?
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 02.02.12 11:18
Оценка:
EOH>>http://habrahabr.ru/blogs/cpp/54762/
EOH>>Это похоже на лабу по информатике?
BBI>Ну не rocket science жеж.

Ну так и ресурс рассчитан на более широкую аудиторию, нежели comp.lang.cpp

EOH>>Или цикл статей про статический анализ C++?

BBI>Ты про рекламу PVS Studio?

Про нее, родимую. Товарищь довольно интересно пишет, много любопытных моментов. Ключи триальные раздает, опять же.
Re[5]: А я не хочу зависеть от того, в какую сторону у кого
От: Erop Россия  
Дата: 02.02.12 11:28
Оценка:
Здравствуйте, squid, Вы писали:

S>Для того чтобы писать и комментировать — да. Чтобы читать — просто регистрация. Последние месяца 3.


Я конечно рад за хаброводов и за сам хабр, но таки ТУТ тема всплыла потому, что статья на которую сослалсь ТС без регистрации НЕ ЧИТАЕТСЯ...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: const_iterator
От: Qbit86 Кипр
Дата: 02.02.12 11:30
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

Q>>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».

BFE>«итератор на константу» — это ведь не верно в общем смысле :shuffle:
BFE>const_iterator может указывать на неконстантный объект... Но сам объект от этого константным ведь не становится :xz:

Ну так это не только к итераторам относится.

BFE>только вот его изменить через интерфейс const_iterator'a нельзя


Через интерфейс итератора на неконстанту тоже нельзя изменить указуемый объект. Через интерфейс итератор можно разыменовать.
Глаза у меня добрые, но рубашка — смирительная!
Re[7]: Исключения
От: Qbit86 Кипр
Дата: 02.02.12 11:37
Оценка: +2
Здравствуйте, Eye of Hell, Вы писали:

EOH>Да, хабр более попули... популяри... вообщем на более широкую аудиторию рассчитан, но в целом там не так печально, как многие рассказывают. RSS их читать интересно.


Всё бы ничего, но часто, не имя на то никаких оснований, считают Хабрахабр достаточно авторитетным источником, чтобы давать ссылки на статьи оттуда в дискуссии. Статьи, рождённые после прочтения через строчку половины главы Рихтера и вольного переосмысления «молодым талантливым автором».
Глаза у меня добрые, но рубашка — смирительная!
Re[9]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 02.02.12 11:38
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>На самом деле всё наоборот. Если я вижу у функции простой указатель, вроде foo(const T* p) — то вот это настоящий "го-дипер"


Отвечу на все одним куском.
В том-то и дел что shared_ptr — это не бесконечно_умный_умеющий_читать_мысли_указатель<T>, это не серебряная пуля. Такими темпами вам срочно надо в управляемые среды. Но, говорят, там тоже есть проблемы с памятью, даже WeakReferenc'ы не помогают. Как текло, так и течет. И вообще, слишком далеко ушли от основной темы, я сдаюсь.
Re[6]: Без регистрации
От: Qbit86 Кипр
Дата: 02.02.12 11:39
Оценка:
Здравствуйте, Erop, Вы писали:

E>Я конечно рад за хаброводов и за сам хабр, но таки ТУТ тема всплыла потому, что статья на которую сослалсь ТС без регистрации НЕ ЧИТАЕТСЯ... :xz:


Извините, был взволнован. Нет, я правда не знал.
Глаза у меня добрые, но рубашка — смирительная!
Re[10]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 02.02.12 11:44
Оценка:
Здравствуйте, fin_81, Вы писали:

BFE>>На самом деле всё наоборот. Если я вижу у функции простой указатель, вроде foo(const T* p) — то вот это настоящий "го-дипер"


_>Отвечу на все одним куском.

_>В том-то и дел что shared_ptr — это не бесконечно_умный_умеющий_читать_мысли_указатель<T>, это не серебряная пуля.

Против утечек — это она самая.

_>Такими темпами вам срочно надо в управляемые среды.


Вот куда мне не надо — дак это туда. В управляемых средах поуправлять вообще не дают.

_>Но, говорят, там тоже есть проблемы с памятью, даже WeakReferenc'ы не помогают. Как текло, так и течет. И вообще, слишком далеко ушли от основной темы, я сдаюсь.


Жаль. Я только подумал, что наверное стоит показать, что такое настоящий "го-дипер"
И каждый день — без права на ошибку...
Re[8]: Исключения
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 02.02.12 11:44
Оценка: 3 (1) +1
Q>Всё бы ничего, но часто, не имя на то никаких оснований, считают Хабрахабр достаточно авторитетным источником, чтобы давать ссылки на статьи оттуда в дискуссии. Статьи, рождённые после прочтения через строчку половины главы Рихтера и вольного переосмысления «молодым талантливым автором».

ИМХО вопрос "авторитетности" в IT — он достаточно больной и без хабра. И заслуженные блоггеры-программисты, имеющие за плечами по двадцать лет профильной работы, тоже ошибаются.
Re[11]: За что мы любим Хабрахабр?
От: fin_81  
Дата: 02.02.12 12:05
Оценка:
Здравствуйте, B0FEE664, Вы писали:

_>>В том-то и дел что shared_ptr — это не бесконечно_умный_умеющий_читать_мысли_указатель<T>, это не серебряная пуля.


BFE>Против утечек — это она самая.


Как решаете проблему циклических ссылок?

_>>Такими темпами вам срочно надо в управляемые среды.


BFE>Вот куда мне не надо — дак это туда. В управляемых средах поуправлять вообще не дают.


_>>Но, говорят, там тоже есть проблемы с памятью, даже WeakReferenc'ы не помогают. Как текло, так и течет. И вообще, слишком далеко ушли от основной темы, я сдаюсь.


BFE>Жаль. Я только подумал, что наверное стоит показать, что такое настоящий "го-дипер"


Настоящий "го-дипер" — это воевать с утечками памяти, когда являешься членом секты "shared_ptr — это серебряная пуля".
Контрольный вопрос: как часто у вас используется weak_ptr?

Все сдаюсь, ни слова про не-очень-то-и-умный shared_ptr.
Re[7]: За что мы любим Хабрахабр?
От: Banned by IT  
Дата: 02.02.12 12:28
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>Ну так и ресурс рассчитан на более широкую аудиторию, нежели comp.lang.cpp

О том и речь.

EOH>Товарищь довольно интересно пишет, много любопытных моментов. Ключи триальные раздает, опять же.

Он тут тоже пробегает иногда.
Статьи их вроде как все есть на их сайте.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: const_iterator
От: ambel-vlad Беларусь  
Дата: 02.02.12 13:00
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>>>от "константа на ссылку" ?


MTD>>А так нет.

М>а давайте добавим это в язык и тогда будет

давай. изобретаешь свой язык и добавляешь туда.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[7]: const_iterator
От: мыщъх США http://nezumi-lab.org
Дата: 02.02.12 13:03
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Здравствуйте, мыщъх, Вы писали:


М>>>>от "константа на ссылку" ?


MTD>>>А так нет.

М>>а давайте добавим это в язык и тогда будет

AV>давай. изобретаешь свой язык и добавляешь туда.


а чего его изобретать? 69[buf] работает и так
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[12]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 02.02.12 13:22
Оценка:
Здравствуйте, fin_81, Вы писали:

_>>>В том-то и дел что shared_ptr — это не бесконечно_умный_умеющий_читать_мысли_указатель<T>, это не серебряная пуля.

BFE>>Против утечек — это она самая.
...
BFE>>Жаль. Я только подумал, что наверное стоит показать, что такое настоящий "го-дипер"
_>Настоящий "го-дипер" — это воевать с утечками памяти, когда являешься членом секты "shared_ptr — это серебряная пуля".

Не, это определять оператор -> таким образом:
    SharedData<T>& operator -> () const
    {
        return *m_SharedMutexAndData;
    }

имея при этом тройную вложенность.

_>Контрольный вопрос: как часто у вас используется weak_ptr?

В текущем проекте — ни разу, в отличии от enable_shared_from_this, который встречается 8 раз

_>Все сдаюсь, ни слова про не-очень-то-и-умный shared_ptr.

Это правда. "Пуля — дура,..."
И каждый день — без права на ошибку...
Re[8]: const_iterator
От: ambel-vlad Беларусь  
Дата: 02.02.12 12:55
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>>>>>от "константа на ссылку" ?


MTD>>>>А так нет.

М>>>а давайте добавим это в язык и тогда будет

AV>>давай. изобретаешь свой язык и добавляешь туда.


М>а чего его изобретать? 69[buf] работает и так


Ну, таки, это не то, что тебе хотелось ("константа на ссылку").
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[11]: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 02.02.12 23:19
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Против утечек — это она самая.


Это пока иклических зависимостей нет...

Серебрянная пуля, тем не менее, есть, только это, скорее, серебрянная атомная бомба
Типа выполняешь запро на отдельном аллокаторе, спасаешь результат на основной, а аллокатор запроса просто ресетишь...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[9]: Исключения
От: skeptic  
Дата: 03.02.12 07:42
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

Заслуженные блоггеры-программисты это шедевр. Хоть на медальках штампуй.
Re[2]: За что мы любим Хабрахабр?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.02.12 10:57
Оценка: -2
Здравствуйте, Erop, Вы писали:


E>То есть "константный указатель, на неконстантный объект" это что-то вроде:
E>foo object;
E>const foo* pointer = &object;

E>аналогичная терминология используется и в случае "константных ссылок", кстати

И этот человек рассказывал что указатели в С++ это легко

Стадо леммингов не смогло проверить простейший код Я все понимаю, можно перепутать с какой стороны const ставится, но почему у сиплюсников отсутствует привычка проверять код который они пишут ?
Re: За что мы любим Хабрахабр?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.02.12 11:06
Оценка: -1 :)
Здравствуйте, Qbit86, Вы писали:

Q>

Q>Константный указатель на неконстантный объект это:

Q>26.52%
Q>(148) Foo *const foo

Q>41.04%
Q>(229) const Foo *foo

Q>http://habrahabr.ru/blogs/cpp/137375/


Q>Эпик фейспалм. Где моя жидкость для розжига межресурсовой ненависти.


Я ж говорил, большая часть программистов и даже сиплюсников не понимает указатели
Re[4]: const_iterator
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.02.12 11:07
Оценка:
Здравствуйте, мыщъх, Вы писали:

Q>>И итераторов, например, const_iterator. Поэтому я тоже говорю «итератор на константу» вместо «константный итератор», не говоря уже про «ссылку на константу».


М>а чем отличается "ссылка на константу" от "константа на ссылку" ?


Углом взгляда
Re[2]: За что мы любим Хабрахабр?
От: hattab  
Дата: 06.02.12 11:40
Оценка: 1 (1) +1 :)
Здравствуйте, Ikemefula, Вы писали:

I> Я ж говорил, большая часть программистов и даже сиплюсников не понимает указатели


То-то неосиляторы и расхваливают свои бронированные памперсы Комплексуют-с
avalon 1.0rc3 build 428, zlib 1.2.3
Re[10]: const_iterator
От: . Великобритания  
Дата: 06.02.12 12:41
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, ., Вы писали:


.>>По определению. Хоть вики возьми "Указатель (поинтер, англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения — нулевого адреса.".

E>Прикольно. А как ты понимаешь себе тогда "множество указателей", например (в смысле std::set<T*>)?
E>Ещё интересно, поинмаешь ли ты "число", как переменную, которая содержит число? Можно ли сказать, что функция malloc возвращает указатель? И если да, то не затрудни ли тебя указать что там за переменная имеется в виду?
Переменная (variable) это то, что может принимать значение (value). Следовательно std::set содержит множество значений. Следовательно переменная содержит значение числа. malloc возвращает значение адреса.
Так что указатель менять можно, а значение адреса — нельзя.

.>>Или ты так, потроллить просто?

E>Часть "совсем не потроллить" закончилась на словах о том, что я не понимаю, зачем описывать С++ конструкции русским языком, а не использовать их сами по себе...
Да как обычно — терминологический спор.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: const_iterator
От: Erop Россия  
Дата: 06.02.12 12:58
Оценка:
Здравствуйте, ., Вы писали:

.>Так что указатель менять можно, а значение адреса — нельзя.

Ты хочешь сказать, что фраза "функция foo возвращает указатель на void" некорректна и не употребляется?
А если она таки корректна и употребляется, то поясни ещё раз про переменые и значения...

.>Да как обычно — терминологический спор.

Дык может я не понял ТС но вроде вся тема была про терминологию
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Что ты имеешь в виду конкретно?
От: Erop Россия  
Дата: 06.02.12 13:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:


E>>
E>>foo object;
E>>const foo* pointer = &object;

E>>аналогичная терминология используется и в случае "константных ссылок", кстати

I>И этот человек рассказывал что указатели в С++ это легко

I>Стадо леммингов не смогло проверить простейший код Я все понимаю, можно перепутать с какой стороны const ставится, но почему у сиплюсников отсутствует привычка проверять код который они пишут ?

Что ты имеешь в виду конкретно?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[12]: const_iterator
От: . Великобритания  
Дата: 06.02.12 13:09
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, ., Вы писали:


.>>Так что указатель менять можно, а значение адреса — нельзя.

E>Ты хочешь сказать, что фраза "функция foo возвращает указатель на void" некорректна и не употребляется?
E>А если она таки корректна и употребляется, то поясни ещё раз про переменые и значения...
Просто, имхо, не совсем точна. Обычно чтобы это значение хоть как-то использовать, его вначале нужно положить в переменную, поэтому неоднозначности в данном случае не вызывает:
void *pointer = malloc(...);

можно сказать, что вернулся указатель.

А если смотреть более точно и детально, то требуется уточнять, и правильно применять термины.

Хотя вру немного. Придётся ещё один термин упомянуть. "Указатель" — ещё и название типа данных. А переменная типа "указатель" тоже называется указателем. В случае с тем что же функция возвращает — описывается в её сигнатуре. malloc возвращает тип данных "указатель".

.>>Да как обычно — терминологический спор.

E>Дык может я не понял ТС но вроде вся тема была про терминологию
Флейм, короче говоря.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[13]: const_iterator
От: Erop Россия  
Дата: 06.02.12 13:31
Оценка:
Здравствуйте, ., Вы писали:

.>Просто, имхо, не совсем точна. Обычно чтобы это значение хоть как-то использовать, его вначале нужно положить в переменную, поэтому неоднозначности в данном случае не вызывает:

.>
.>void *pointer = malloc(...);
.>

.>можно сказать, что вернулся указатель.

Ой, правда что ли?
getMySessionPtr()->CloseSession();

Что, по твоему возвращает getMySessionPtr()? Указатель на сессию, или что-то иное?

.>А если смотреть более точно и детально, то требуется уточнять, и правильно применять термины.


.>Хотя вру немного. Придётся ещё один термин упомянуть. "Указатель" — ещё и название типа данных. А переменная типа "указатель" тоже называется указателем. В случае с тем что же функция возвращает — описывается в её сигнатуре. malloc возвращает тип данных "указатель".


Ну ты как хочешь можешь изворачиваться, но мне лично известна, и предстваляется последовательной и логичной терминология, в которой функция malloc возвращает заначение типа данных указатель, или просто указатель. А функция sin возвращает значение типа число с плавающе точкой, или просто число с плавающей точкой. Так как в случае функции всегда понятно, что она возвращает значение какого-то типа...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[14]: const_iterator
От: . Великобритания  
Дата: 06.02.12 14:02
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ой, правда что ли?

E>
getMySessionPtr()->CloseSession();

E>Что, по твоему возвращает getMySessionPtr()? Указатель на сессию, или что-то иное?
Есть такая неявная переменная "this", указатель, как ни странно...

.>>А если смотреть более точно и детально, то требуется уточнять, и правильно применять термины.

.>>Хотя вру немного. Придётся ещё один термин упомянуть. "Указатель" — ещё и название типа данных. А переменная типа "указатель" тоже называется указателем. В случае с тем что же функция возвращает — описывается в её сигнатуре. malloc возвращает тип данных "указатель".
E>Ну ты как хочешь можешь изворачиваться, но мне лично известна, и предстваляется последовательной и логичной терминология, в которой функция malloc возвращает заначение типа данных указатель, или просто указатель. А функция sin возвращает значение типа число с плавающе точкой, или просто число с плавающей точкой. Так как в случае функции всегда понятно, что она возвращает значение какого-то типа...
Можно конечно так говорить, но до тех пор пока не возникают неоднозначности. Человек пишет "А как тогда называют указатель, который нельзя менять?", а ты "Ну, например, так и называют. Но указатель -- это это же значение". Он имеет в виду понятие "переменная типа указатель" (т.е. "...поименованная, либо адресуемая иным способом область памяти..."), а ты подменяешь понятием "значение типа указатель" (т.е. элемент множества допустимых значений типа данных "указатель", адрес, короче говоря).
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[15]: const_iterator
От: Erop Россия  
Дата: 06.02.12 15:06
Оценка:
Здравствуйте, ., Вы писали:

.>Есть такая неявная переменная "this", указатель, как ни странно...

Ты тут втирал, что переменная -- это то, куда можно присваивать значения, вроде. Так с какого перепугу эта самая this -- переменная?
Вообще, обычно это какой-то регистр, который ещё и менять нельзя...

.>Можно конечно так говорить, но до тех пор пока не возникают неоднозначности. Человек пишет "А как тогда называют указатель, который нельзя менять?", а ты "Ну, например, так и называют. Но указатель -- это это же значение". Он имеет в виду понятие "переменная типа указатель" (т.е. "...поименованная, либо адресуемая иным способом область памяти..."), а ты подменяешь понятием "значение типа указатель" (т.е. элемент множества допустимых значений типа данных "указатель", адрес, короче говоря).


Ну это просто омонимия. Если мы говорим про переменную типа int, что это число, которое пробегает такие-то значения, то почему мы не можем так же обращаться с указателем или там итератором и т. д.?

А термин "константный указатель" неудачный, конечно же, но так уж сложилось, что термин "константное число" не востребован, и аналогичный термин про указатели тоже не шибко нужен. А вот указатель, который даёт ro доступ к указуемому, так же, как итератор с такими свойствами и т. д. -- востребован. Вот его, AFAIK и называют "константный указатель". Но это безусловно вносит путанницу. Можно ввести себе за правило говорить "указатель на константу", например. Это тоже путает, но меньше.

Тем не менее я наблюдаю вокруг себя и в литературе вполне сложившуюся практику использовать этот уродский термин "константный указатель" или "константный итератор" и т. д. И только студни каждый год гонят. Как быдто у людей нет дел поинтереснее
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[16]: const_iterator
От: . Великобритания  
Дата: 06.02.12 15:28
Оценка:
Здравствуйте, Erop, Вы писали:

.>>Есть такая неявная переменная "this", указатель, как ни странно...

E>Ты тут втирал, что переменная -- это то, куда можно присваивать значения, вроде. Так с какого перепугу эта самая this -- переменная?
E>Вообще, обычно это какой-то регистр, который ещё и менять нельзя...
Это не главное. Читай вики: "...поименованная...". А это называется константная переменная (хе-хе, оксюморон, конечно...), т.е. значение переменной может быть установлено только один раз.

.>>Можно конечно так говорить, но до тех пор пока не возникают неоднозначности. Человек пишет "А как тогда называют указатель, который нельзя менять?", а ты "Ну, например, так и называют. Но указатель -- это это же значение". Он имеет в виду понятие "переменная типа указатель" (т.е. "...поименованная, либо адресуемая иным способом область памяти..."), а ты подменяешь понятием "значение типа указатель" (т.е. элемент множества допустимых значений типа данных "указатель", адрес, короче говоря).

E>Ну это просто омонимия. Если мы говорим про переменную типа int, что это число, которое пробегает такие-то значения, то почему мы не можем так же обращаться с указателем или там итератором и т. д.?
Нет, разные аспекты это, как "тёплый" и "мягкий", а не омонимы.

E>А термин "константный указатель" неудачный, конечно же, но так уж сложилось, что термин "константное число" не востребован, и аналогичный термин про указатели тоже не шибко нужен.

Потому что "константная переменная типа указатель" кратко называют "константный указатель", "константная переменная типа целое число" это "целочисленная константа":
const int a = 42;

говорят, что "a" — константа, а "42" это число.

E> А вот указатель, который даёт ro доступ к указуемому, так же, как итератор с такими свойствами и т. д. -- востребован. Вот его, AFAIK и называют "константный указатель". Но это безусловно вносит путанницу. Можно ввести себе за правило говорить "указатель на константу", например. Это тоже путает, но меньше.

Так дело в том, что есть "переменная-указатель на константу", а есть "константная переменная-указатель" — принципиально разные вещи! Как их предлагаешь различать?

E>Тем не менее я наблюдаю вокруг себя и в литературе вполне сложившуюся практику использовать этот уродский термин "константный указатель" или "константный итератор" и т. д. И только студни каждый год гонят. Как быдто у людей нет дел поинтереснее

Так ты всё в кучу свалил. Вот и получилось месиво из терминов.
Эх... Но раз мы в КСВ, значит дел интереснее и правда нет.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[17]: const_iterator
От: Erop Россия  
Дата: 06.02.12 16:08
Оценка:
Здравствуйте, ., Вы писали:

E>>Ну это просто омонимия. Если мы говорим про переменную типа int, что это число, которое пробегает такие-то значения, то почему мы не можем так же обращаться с указателем или там итератором и т. д.?

.>Нет, разные аспекты это, как "тёплый" и "мягкий", а не омонимы.

Давай ещё и про "омонимию" поспорим?
Кроме того, ты так и не ответил по существу, почему про число так говорить можно, а про указатель -- нет

.>Потому что "константная переменная типа указатель" кратко называют "константный указатель", "константная переменная типа целое число" это "целочисленная константа":


Ну дык и?
Говори, что foo*const -- это указатель-константа...
Ты же const int "константным числом" не называешь?


.>Так дело в том, что есть "переменная-указатель на константу", а есть "константная переменная-указатель" — принципиально разные вещи! Как их предлагаешь различать?


Я лично предпочитаю их различать на С++ а не в русском уменовании.
Переменная-константа -- редко бывает нужна, и её можно прямо так и называть. А "константный указатель", так же, как и "владеющий" -- вполне, AFAIK, сложившиеся практики.

.>Так ты всё в кучу свалил. Вот и получилось месиво из терминов.

.>Эх... Но раз мы в КСВ, значит дел интереснее и правда нет.


У меня есть. Например, у меня есть задачка. Есть очень многомерное, но всё же конечно-мерное пространство. Ну, скажем пространство с размерностью несколько тысяч измерений.
В этом пространстве задано N множеств точек. Все точки всех множеств различны. Далее, у меня есть число K. Выберем в нашем пространстве K точек (это могут быть какие-то из заданных точек, или вообще какие-то точки пространства, и такой и такой варианты можно рассмотреть) Для каждой выбранной точки, построим её окрестность -- это множество точек, которые ближе к данной точке, чем к другим, то есть это будет некоторое обобщение диаграммы Вороного на многомерный случай. И для каждой из выбранных точек посчитаем представители скольки множеств попадают в её окрестность.
Дальше эти числа (количества множеств, которые попадают) можно как-то объединить. Например, можно взять просто максимум по всем точкам, а если это не удобно, то можно как-то усреднить, например, взяв в качестве весов число точек из объединения исходных N точек, попадающих в окрестность. В общем не важно, как объединять -- можно выбрать. Назовём результирующее число весом этой системы из К точек, относительно заданного множества из N точек.
Задача состоит в том, что бы по заданному множеству множеств и числу К построить систему точек с минимальным или, хотя бы с субминимальным весом

Но я сейчас болею и про систему с субминимальным весом думается плохо.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.02.12 08:16
Оценка:
Здравствуйте, Qbit86, Вы писали:

EOH>>Да, хабр более попули... популяри... вообщем на более широкую аудиторию рассчитан, но в целом там не так печально, как многие рассказывают. RSS их читать интересно.


Q>Всё бы ничего, но часто, не имя на то никаких оснований, считают Хабрахабр достаточно авторитетным источником, чтобы давать ссылки на статьи оттуда в дискуссии. Статьи, рождённые после прочтения через строчку половины главы Рихтера и вольного переосмысления «молодым талантливым автором».


У Хабра есть одно замечательное свойство, перекрывающее основную массу недостатков: он рассчитан на заведомо конструктивные статьи, при этом качественно подготовленные по оформлению, и легко читаемые. Как правило, это или howto'шки (то есть описания, как что-то сделать под задачу, описанную автором, или близкую к тому), или учебно-описательные статьи. Эта политика — лучшее, что в нём есть. Разумеется, безусловно принимать всё сказанное на нём на веру — нельзя, тут он ничем не отличается, например, от Википедии: критическое мышление и самостоятельная сверка источников обязательна при изучении материалов с обоих. Но если я хочу прочитать что-то по незнакомой мне области, получить общее впечатление и понять, куда копать дальше, то Хабр — отличное средство.

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

Из последних примеров — например, именно с Хабра я услышал про timsort. Через более "строгие" ресурсы оно могло дойти бы через несколько лет, потому что напрямую с ним не сталкиваешься; но в качестве учебного факта его существование и упоминание крайне важно.
The God is real, unless declared integer.
Re[18]: const_iterator
От: . Великобритания  
Дата: 07.02.12 10:33
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>Ну это просто омонимия. Если мы говорим про переменную типа int, что это число, которое пробегает такие-то значения, то почему мы не можем так же обращаться с указателем или там итератором и т. д.?

.>>Нет, разные аспекты это, как "тёплый" и "мягкий", а не омонимы.
E>Давай ещё и про "омонимию" поспорим?
E>Кроме того, ты так и не ответил по существу, почему про число так говорить можно, а про указатель -- нет
Выделил жирным кривость. Так наоборот же говорят: переменная типа int, значение которой пробегает какие-то числа. Как может число пробегать значения?

.>>Потому что "константная переменная типа указатель" кратко называют "константный указатель", "константная переменная типа целое число" это "целочисленная константа":

E>Ну дык и?
E>Говори, что foo*const -- это указатель-константа...
Стол-раскладушка == раскладной стол, указатель-константа == константный указатель.
Русский язык, однако.

E>Ты же const int "константным числом" не называешь?

Потому что "переменная типа указатель" часто называют просто "указатель", ибо в большинстве случаев неоднозначностей не возникает. Иногда и числовые переменные разывают числами.
int f(int x) {return x * x;}

о таком коде вполне естественно сказать: "Функция f возводит в квадрат число x". Хотя x не только переменная, но и не константа, и даже значение присвоить можно будет.

.>>Так дело в том, что есть "переменная-указатель на константу", а есть "константная переменная-указатель" — принципиально разные вещи! Как их предлагаешь различать?

E>Я лично предпочитаю их различать на С++ а не в русском уменовании.
E>Переменная-константа -- редко бывает нужна, и её можно прямо так и называть. А "константный указатель", так же, как и "владеющий" -- вполне, AFAIK, сложившиеся практики.
Я стараюсь придерживаться стиля писать const (точнее final, т.к. последнее время на java пишу) везде где можно.

E>У меня есть. Например, у меня есть задачка. Есть очень многомерное, но всё же конечно-мерное пространство. Ну, скажем пространство с размерностью несколько тысяч измерений.

E>В этом пространстве задано N множеств точек. Все точки всех множеств различны. Далее, у меня есть число K. Выберем в нашем пространстве K точек (это могут быть какие-то из заданных точек, или вообще какие-то точки пространства, и такой и такой варианты можно рассмотреть) Для каждой выбранной точки, построим её окрестность -- это множество точек, которые ближе к данной точке, чем к другим, то есть это будет некоторое обобщение диаграммы Вороного на многомерный случай. И для каждой из выбранных точек посчитаем представители скольки множеств попадают в её окрестность.
E>Дальше эти числа (количества множеств, которые попадают) можно как-то объединить. Например, можно взять просто максимум по всем точкам, а если это не удобно, то можно как-то усреднить, например, взяв в качестве весов число точек из объединения исходных N точек, попадающих в окрестность. В общем не важно, как объединять -- можно выбрать. Назовём результирующее число весом этой системы из К точек, относительно заданного множества из N точек.
E>Задача состоит в том, что бы по заданному множеству множеств и числу К построить систему точек с минимальным или, хотя бы с субминимальным весом

E>Но я сейчас болею и про систему с субминимальным весом думается плохо.

Что-то как-то условий не хватает. K точкек можно выбрать в одном месте, подальше ото всех, значит от значения K не зависит. И окресности тоже непонятно какие... Что такое субминимальный вес тоже не очень понимаю.
Или я совсем задачу не понял.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: Что ты имеешь в виду конкретно?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 11:38
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>
E>>>foo object;
E>>>const foo* pointer = &object;

E>>>аналогичная терминология используется и в случае "константных ссылок", кстати

I>>И этот человек рассказывал что указатели в С++ это легко

I>>Стадо леммингов не смогло проверить простейший код Я все понимаю, можно перепутать с какой стороны const ставится, но почему у сиплюсников отсутствует привычка проверять код который они пишут ?

E>Что ты имеешь в виду конкретно?


Очевидно, речь про C3892, типа ты не понял
Re[2]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 07.02.12 11:46
Оценка: 2 (1) +1 :)
Здравствуйте, Dym On, Вы писали:

Q>>

Константный указатель на неконстантный объект это:

DO>Такие вопросы теперь голосованием решаются ? Жду голосования по таблице умножения

Предлагаю вопрос.
Верно ли, что 010 * 010 равно 100 ?
да
нет

И каждый день — без права на ошибку...
Re[3]: За что мы любим Хабрахабр?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 11:49
Оценка:
Здравствуйте, hattab, Вы писали:

I>> Я ж говорил, большая часть программистов и даже сиплюсников не понимает указатели


H>То-то неосиляторы и расхваливают свои бронированные памперсы Комплексуют-с


Не, это для тебя указатели суть показатель крутости
Re[19]: const_iterator
От: Erop Россия  
Дата: 07.02.12 11:53
Оценка:
Здравствуйте, ., Вы писали:

.>Выделил жирным кривость. Так наоборот же говорят: переменная типа int, значение которой пробегает какие-то числа. Как может число пробегать значения?


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

.>Стол-раскладушка == раскладной стол, указатель-константа == константный указатель.

.>Русский язык, однако.
Во-первых, это не русский, а кривая калька с английского.
Во-вторых, плащ-палатка -- это разве палаточный плащ?

E>>У меня есть. Например, у меня есть задачка. Есть очень многомерное, но всё же конечно-мерное пространство. Ну, скажем пространство с размерностью несколько тысяч измерений.

E>>В этом пространстве задано N множеств точек. Все точки всех множеств различны. Далее, у меня есть число K. Выберем в нашем пространстве K точек (это могут быть какие-то из заданных точек, или вообще какие-то точки пространства, и такой и такой варианты можно рассмотреть) Для каждой выбранной точки, построим её окрестность -- это множество точек, которые ближе к данной точке, чем к другим, то есть это будет некоторое обобщение диаграммы Вороного на многомерный случай. И для каждой из выбранных точек посчитаем представители скольки множеств попадают в её окрестность.
E>>Дальше эти числа (количества множеств, которые попадают) можно как-то объединить. Например, можно взять просто максимум по всем точкам, а если это не удобно, то можно как-то усреднить, например, взяв в качестве весов число точек из объединения исходных N точек, попадающих в окрестность. В общем не важно, как объединять -- можно выбрать. Назовём результирующее число весом этой системы из К точек, относительно заданного множества из N точек.
E>>Задача состоит в том, что бы по заданному множеству множеств и числу К построить систему точек с минимальным или, хотя бы с субминимальным весом

E>>Но я сейчас болею и про систему с субминимальным весом думается плохо.

.>Что-то как-то условий не хватает. K точкек можно выбрать в одном месте, подальше ото всех, значит от значения K не зависит. И окресности тоже непонятно какие... Что такое субминимальный вес тоже не очень понимаю.
.>Или я совсем задачу не понял.
Ну, для простоты считай, что мы выбираем К точек из членов заданных множеств.
Но это не важно, если выбрать К точек совсем далеко где-то, то ближайшая их них к нашим заданным точкам будет иметь в соседях представителей всех N множеств, то есть вес будет N...

Субминимальный -- значит, что это неточный минимум, но близко к нему...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[18]: Квантизация
От: gegMOPO4  
Дата: 07.02.12 11:57
Оценка: 2 (1)
06.02.12 18:08, Erop написав(ла):
> У меня есть. Например, у меня есть задачка. Есть очень многомерное, но всё же конечно-мерное пространство. Ну, скажем пространство с размерностью несколько тысяч измерений.
> В этом пространстве задано N множеств точек. Все точки всех множеств различны. Далее, у меня есть число K. Выберем в нашем пространстве K точек (это могут быть какие-то из заданных точек, или вообще какие-то точки пространства, и такой и такой варианты можно рассмотреть) Для каждой выбранной точки, построим её окрестность -- это множество точек, которые ближе к данной точке, чем к другим, то есть это будет некоторое обобщение диаграммы Вороного на многомерный случай. И для каждой из выбранных точек посчитаем представители скольки множеств попад
ают в её окрестность.
> Дальше эти числа (количества множеств, которые попадают) можно как-то объединить. Например, можно взять просто максимум по всем точкам, а если это не удобно, то можно как-то усреднить, например, взяв в качестве весов число точек из объединения исходных N точек, попадающих в окрестность. В общем не важно, как объединять -- можно выбрать. Назовём результирующее число весом этой системы из К точек, относительно заданного множества из N точек.
> Задача состоит в том, что бы по заданному множеству множеств и числу К построить систему точек с минимальным или, хотя бы с субминимальным весом

Это похоже на задачу квантизации в некотором роде. Вот идеи.

Чистый Монте-Карло. Выбираем K точек случайно. И так несколько раз. Берём набор с минимальным весом.

Оптимизация. Берём набор K точек и стараемся сделать его лучше. Или выбрасываем худшую точку (или несколько худших) и заменяем её (их) случайными, остальные оставляя неизменными. Или двигаем её (их) небольшими шажками, такими чтобы базовые точки переходили по одной из одной ячейки Вороного в другую, улучшая худшую за счёт соседа. Возможно при этом двигая и остальные точки так, что их характеристики не изменяются, но это оставляет больше свободы для маневра худшими. Если K много больше размерности, может ещё сработать общая деформация пространс
тва — K точек прикрепляются к грубой сетке, узлы которой сдвигаются, деформируя ячейки и двигая точки.

Можно стартовать с меньшим K, а потом расщеплять худшие точки и оптимизировать.

Всё эти шаги повторить многократно, перемежёвывая по вкусу.

В зависимости от конкретных особенностей задачи, выбор начальных случайных точек и дополнительных может быть не совсем случайным.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.02.12 12:01
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Dym On, Вы писали:


Q>>>

Константный указатель на неконстантный объект это:

DO>>Такие вопросы теперь голосованием решаются ? Жду голосования по таблице умножения

BFE>Предлагаю вопрос.

BFE>Верно ли, что 010 * 010 равно 100 ?
BFE>да
BFE>нет

BFE>


Лучше так:

чему равно 84, если 8*8 == 54?

А твой вопрос приведёт к священному спору вокруг заведомо устаревших фич раннего Си, за которые давно пора бить ногами.
The God is real, unless declared integer.
Re[5]: Что ты имеешь в виду конкретно?
От: Erop Россия  
Дата: 07.02.12 12:02
Оценка:
Здравствуйте, Ikemefula, Вы писали:

E>>>>
E>>>>foo object;
E>>>>const foo* pointer = &object;

I>>>И этот человек рассказывал что указатели в С++ это легко
I>>>Стадо леммингов не смогло проверить простейший код Я все понимаю, можно перепутать с какой стороны const ставится, но почему у сиплюсников отсутствует привычка проверять код который они пишут ?

E>>Что ты имеешь в виду конкретно?


I>Очевидно, речь про C3892, типа ты не понял


Это про попытку ПРИСВАИВАНИЯ в переменную-константу? В процитированном тобой коде есть только две нициализации и нет ни одного присваивания...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: За что мы любим Хабрахабр?
От: Dym On Россия  
Дата: 07.02.12 12:03
Оценка:
DO>>Жду голосования по таблице умножения

BFE>Предлагаю вопрос.

BFE>Верно ли, что 010 * 010 равно 100 ?
BFE>да
BFE>нет

BFE>

Класс, уел
Счастье — это Glück!
Re[19]: Квантизация
От: Erop Россия  
Дата: 07.02.12 12:17
Оценка:
Здравствуйте, gegMOPO4, Вы писали:

MOP>Это похоже на задачу квантизации в некотором роде. Вот идеи.


N -- сотни тысяч
K -- сотни, можно тысячи, но чем меньше, тем лучше.
Цель -- получить по возможности маленький набор точек с весом сотни.


MOP>Чистый Монте-Карло. Выбираем K точек случайно. И так несколько раз. Берём набор с минимальным весом.


Не сойдётся.

MOP>Оптимизация. Берём набор K точек и стараемся сделать его лучше. Или выбрасываем худшую точку (или несколько худших) и заменяем её (их) случайными, остальные оставляя неизменными. Или двигаем её (их) небольшими шажками, такими чтобы базовые точки переходили по одной из одной ячейки Вороного в другую, улучшая худшую за счёт соседа. Возможно при этом двигая и остальные точки так, что их характеристики не изменяются, но это оставляет больше свободы для маневра худшими. Если K много больше размерности, может ещё сработать общая деформация пространс

MOP>тва — K точек прикрепляются к грубой сетке, узлы которой сдвигаются, деформируя ячейки и двигая точки.

MOP>Можно стартовать с меньшим K, а потом расщеплять худшие точки и оптимизировать.


MOP>Всё эти шаги повторить многократно, перемежёвывая по вкусу.


MOP>В зависимости от конкретных особенностей задачи, выбор начальных случайных точек и дополнительных может быть не совсем случайным.


Ещё можно класстеризовать исходные точки, исходя из каких-нибудь принципов.
Ещё можно ГА с кооптацией заюзать.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Что ты имеешь в виду конкретно?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 12:19
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>Что ты имеешь в виду конкретно?


I>>Очевидно, речь про C3892, типа ты не понял


E>Это про попытку ПРИСВАИВАНИЯ в переменную-константу? В процитированном тобой коде есть только две нициализации и нет ни одного присваивания...


Вот-вот. А должно быть. Ибо в условии "константный указатель" а не хрен знает что.
Re[7]: Что ты имеешь в виду конкретно?
От: Erop Россия  
Дата: 07.02.12 12:23
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Вот-вот. А должно быть. Ибо в условии "константный указатель" а не хрен знает что.

Ты, конечно, извини, но я термин "константный указатель" понимаю иначе, и я написал КАК ИМЕННО. О том и спор вроде, какая из трактовок более общепринята...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: За что мы любим Хабрахабр?
От: hattab  
Дата: 07.02.12 12:27
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I> H>То-то неосиляторы и расхваливают свои бронированные памперсы Комплексуют-с


I> Не, это для тебя указатели суть показатель крутости


С чего бы вдруг Я вообще не вижу в них ничего особенного.
avalon 1.0rc3 build 428, zlib 1.2.3
Re[8]: Что ты имеешь в виду конкретно?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 12:51
Оценка:
Здравствуйте, Erop, Вы писали:

I>>Вот-вот. А должно быть. Ибо в условии "константный указатель" а не хрен знает что.

E>Ты, конечно, извини, но я термин "константный указатель" понимаю иначе, и я написал КАК ИМЕННО. О том и спор вроде, какая из трактовок более общепринята...

У тебя какое то уникальное понимание этих константных указателей, о чем тебе и сообщают .
Re[5]: За что мы любим Хабрахабр?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 12:52
Оценка: :)
Здравствуйте, hattab, Вы писали:

I>> H>То-то неосиляторы и расхваливают свои бронированные памперсы Комплексуют-с

I>> Не, это для тебя указатели суть показатель крутости

H>С чего бы вдруг Я вообще не вижу в них ничего особенного.


Видишь, а потому хвастаешься в довольно глупой манере.
Re[9]: Что ты имеешь в виду конкретно?
От: Erop Россия  
Дата: 07.02.12 12:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>У тебя какое то уникальное понимание этих константных указателей, о чем тебе и сообщают .


Судя по опросу из начала топика -- вовсе нет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Что ты имеешь в виду конкретно?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.02.12 13:17
Оценка:
Здравствуйте, Erop, Вы писали:

I>>У тебя какое то уникальное понимание этих константных указателей, о чем тебе и сообщают .


E>Судя по опросу из начала топика -- вовсе нет...


Ты же позиционируешь себя как эксперта А голосования с++-леммингов ничего не показывают.
Re[11]: Что ты имеешь в виду конкретно?
От: Erop Россия  
Дата: 07.02.12 13:25
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ты же позиционируешь себя как эксперта А голосования с++-леммингов ничего не показывают.


Я-то? Вовсе нет.
Кроме того, своё экспертное мнение я ужо сказал
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: За что мы любим Хабрахабр?
От: Privalov  
Дата: 07.02.12 13:27
Оценка:
Здравствуйте, netch80, Вы писали:

N>Лучше так:


N>чему равно 84, если 8*8 == 54?


100?
Re[5]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.02.12 13:37
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Здравствуйте, netch80, Вы писали:


N>>Лучше так:


N>>чему равно 84, если 8*8 == 54?


P>100?


Угу
The God is real, unless declared integer.
Re[6]: За что мы любим Хабрахабр?
От: hattab  
Дата: 07.02.12 13:50
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I> I>> Не, это для тебя указатели суть показатель крутости


I> H>С чего бы вдруг Я вообще не вижу в них ничего особенного.


I> Видишь, а потому хвастаешься в довольно глупой манере.


Ты эта... Закусывай почаще.
avalon 1.0rc3 build 428, zlib 1.2.3
Re[4]: За что мы любим Хабрахабр?
От: Erop Россия  
Дата: 07.02.12 16:09
Оценка:
Здравствуйте, netch80, Вы писали:

N>Лучше так:


N>чему равно 84, если 8*8 == 54?


Так совсем нелогично. 84 равно 84 в любом раскладе.
Тогда уж надо спросить что-то типа, сколько будет 84/21, например...
Или половина корня из 84...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Чему равно 84/5, если 8*8=54? (-)
От: Erop Россия  
Дата: 07.02.12 16:12
Оценка: 2 (1) +1
Здравствуйте, Erop, Вы писали:

N>>чему равно 84, если 8*8 == 54?


E>Тогда уж надо спросить что-то типа, сколько будет 84/21, например...

Блин, 84/21 -- всегда даст 4 !

Что за непер?
В общем надо спросить как-то так:

Чему равно 84/5, если 8*8=54?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: За что мы любим Хабрахабр?
От: vpchelko  
Дата: 07.02.12 16:14
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>и за это мы ТОЖЕ его любим.


Да мы любим регистрироваться, оставлять где попало свой маил и другие данные.
Сало Украине, Героям Сала
Re[6]: Чему равно 84/5, если 8*8=54? (-)
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.02.12 16:23
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Erop, Вы писали:


N>>>чему равно 84, если 8*8 == 54?


E>>Тогда уж надо спросить что-то типа, сколько будет 84/21, например...

E>Блин, 84/21 -- всегда даст 4 !

E>Что за непер?

E>В общем надо спросить как-то так:

E>Чему равно 84/5, если 8*8=54?


Отличный ход, спасибо
The God is real, unless declared integer.
Re[2]: За что мы любим Хабрахабр?
От: vpchelko  
Дата: 07.02.12 19:09
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я ж говорил, большая часть программистов и даже сиплюсников не понимает указатели


Это не указатели понимают. Это синтаксис непрозрачный.
Сало Украине, Героям Сала
Re[3]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.02.12 19:12
Оценка:
Здравствуйте, vpchelko, Вы писали:

I>>Я ж говорил, большая часть программистов и даже сиплюсников не понимает указатели


V>Это не указатели понимают. Это синтаксис непрозрачный.


Те знакомые, которые имели проблемы с пониманием указателей, не лучше их понимали и в Паскале (борландовском), где синтаксис намного прозрачнее.
The God is real, unless declared integer.
Re[4]: За что мы любим Хабрахабр?
От: vpchelko  
Дата: 07.02.12 19:36
Оценка:
Здравствуйте, netch80, Вы писали:

N>Те знакомые, которые имели проблемы с пониманием указателей, не лучше их понимали и в Паскале (борландовском), где синтаксис намного прозрачнее.


Как бы сам вопрос немножко в сторонке от понятия указателей. И вообще указатель это очень примитивное понятие. Перемена указывающая на кусок памяти?

Только в Ц к ней типизацию прикрутили и другие костыли.
Сало Украине, Героям Сала
Re[5]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.02.12 07:39
Оценка:
Здравствуйте, vpchelko, Вы писали:

V>Здравствуйте, MasterZiv, Вы писали:


MZ>>и за это мы ТОЖЕ его любим.


V>Да мы любим регистрироваться, оставлять где попало свой маил и другие данные.


Ну, ещё один сайт не сильно повредит, особенно если указать подконтрольный форвардер. Тем более если на этот сайт регулярно заглядываешь в поисках интересного. Я из такой логики зарегистрировался и очень обиделся, увидев, что этот readonly не даёт даже отвечать в Q&A. Потом почитал комментарии про его политику, про откровенно неадекватное поведение хозяев сайта и решил, что если мне потребуется туда нормальный логин — я легко найду несколько источников инвайтов, но если мне надо что-то просто написать и выставить на публику — то есть масса других мест, от личного блога до RSDN. А лезть в сообщество, которое варится само в себе, как-то не хочется.

Одно принципиально жаль: что его хозяева не понимают, что закрытое сообщество или высокий порог вхождения хороши только на короткое время, когда надо рывком сконцентрировать усилия и собрать группу для реализации, и неважно, что это — государство, фирма или публичный сайт. А длительное существование закрытого сообщества приводит только к деградации.
The God is real, unless declared integer.
Re[5]: За что мы любим Хабрахабр?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.02.12 07:54
Оценка:
Здравствуйте, vpchelko, Вы писали:

N>>Те знакомые, которые имели проблемы с пониманием указателей, не лучше их понимали и в Паскале (борландовском), где синтаксис намного прозрачнее.

V>Как бы сам вопрос немножко в сторонке от понятия указателей.

В стороне, но в случае Си синтаксис — дополнительный барьер восприятия.

V> И вообще указатель это очень примитивное понятие. Перемена указывающая на кусок памяти?

V>Только в Ц к ней типизацию прикрутили и другие костыли.

А к чему тут собственно примитивность? Ассемблер ещё примитивнее, но работать с ним многим ещё сложнее.
The God is real, unless declared integer.
Re[5]: За что мы любим Хабрахабр?
От: B0FEE664  
Дата: 08.02.12 09:45
Оценка:
Здравствуйте, vpchelko, Вы писали:

V>И вообще указатель это очень примитивное понятие.

Не согласен. Базовое — да, примитивное — нет.

V>Перемена указывающая на кусок памяти?


Вопроса не понял. Перемена чего?
И каждый день — без права на ошибку...
Re[6]: За что мы любим Хабрахабр?
От: vpchelko  
Дата: 08.02.12 10:16
Оценка: :)
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, vpchelko, Вы писали:


V>>И вообще указатель это очень примитивное понятие.

BFE>Не согласен. Базовое — да, примитивное — нет.

V>>Перемена указывающая на кусок памяти?


BFE>Вопроса не понял. Перемена чего?


Перемена тормазов . Когда тут возможность править посты будет?
Сало Украине, Героям Сала
Re[6]: За что мы любим Хабрахабр?
От: vpchelko  
Дата: 08.02.12 15:40
Оценка:
Здравствуйте, netch80, Вы писали:

N>В стороне, но в случае Си синтаксис — дополнительный барьер восприятия.


Да синтаксис такой, что можно легко запутаться.

N>А к чему тут собственно примитивность? Ассемблер ещё примитивнее, но работать с ним многим ещё сложнее.


Благо, я перешел с ц на жаву.

Да тут нед идиотской вещи как оператора delete[] и new[].

Во 2ом большом проекте, я багу как раз с этим фиксил, память текла...
Сало Украине, Героям Сала
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.