За что мы любим Хабрахабр?
От: 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*, таки константный? Или между ними есть какая-то принципиальная разница в семантике?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.