<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212941</guid>
        <pubDate>Tue, 02 Oct 2012 12:10:23 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212941</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212936'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T16:04:56+04:00">02.10.12, 12:04</time></span><div class='quote '>Вот у тебя возникали серьёзные проблемы</div></div><br>
Неа. Но я вообще не помню, чтобы мне как-то помогали private/protected/public. Это же не повод... :D]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212936</guid>
        <pubDate>Tue, 02 Oct 2012 12:04:56 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212936</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212933'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T12:03:13+00:00">02.10.12, 12:03</time></span><div class='quote '>Потому, что это делает менее логичным поиск имен.</div></div><br>
Вот у тебя возникали серьёзные проблемы или ты только сейчас так разошёлся? :D]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212933</guid>
        <pubDate>Tue, 02 Oct 2012 12:03:13 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212933</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212931'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T12:01:05+00:00">02.10.12, 12:01</time></span><div class='quote '>Нужно освежить по D&amp;E, там этому не мало посвящено.</div></div><br>
Да, я вот тоже вспомнить не могу... Сегодня посмотрю :) <br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Просто мне кажется это логичным при механизме текстовых include&#39;ов - мы и так всё видим, зачем делать вид, что нет?</div></div><br>
Потому, что это делает менее логичным поиск имен.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212931</guid>
        <pubDate>Tue, 02 Oct 2012 12:01:05 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212931</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212927'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:58:30+00:00">02.10.12, 11:58</time></span><div class='quote '>Почему это правильно(если в интерфейсе класса этого самого внутреннего типа нет) и ради чего, собственно?</div></div><br>
Нужно освежить по D&amp;E, там этому не мало посвящено.<br>
Просто мне кажется это логичным при механизме текстовых include&#39;ов - мы и так всё видим, зачем делать вид, что нет?]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212927</guid>
        <pubDate>Tue, 02 Oct 2012 11:58:30 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212927</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212926'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:55:03+00:00">02.10.12, 11:55</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212923'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:54:07+00:00">02.10.12, 11:54</time></span><div class='quote '>Недоступны мемберы. А имена - доступны.</div></div><br>
Так вот и давай говорить о доступности и о видимости, ok?</div></div><br>
Имена-то доступны :) Ладно, ок, давно плюсовую литературу не читал ;) <br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Да, я в курсе. И?</div></div><br>
Почему это правильно(если в интерфейсе класса этого самого внутреннего типа нет) и ради чего, собственно?]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212926</guid>
        <pubDate>Tue, 02 Oct 2012 11:55:03 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212926</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212923'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:54:07+00:00">02.10.12, 11:54</time></span><div class='quote '>Недоступны мемберы. А имена - доступны.</div></div><br>
Так вот и давай говорить о доступности и о видимости, ok?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212923'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:54:07+00:00">02.10.12, 11:54</time></span><div class='quote '>Представь себе SFINAE с выбором специализации, допустим, по наличию внутреннего типа. Если у тебя будет соответствующий private-тип то SFINAE просто не сработает, а код не скомпилируется...</div></div><br>
Да, я в курсе. И?]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212923</guid>
        <pubDate>Tue, 02 Oct 2012 11:54:07 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212923</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212918'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:49:41+00:00">02.10.12, 11:49</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212914'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:49:05+00:00">02.10.12, 11:49</time></span><div class='quote '>Так &quot;видь&quot; размер. Какое это отношение имеет к доступности имен?</div></div><br>
Так они не доступны :D Ты не можешь их вызвать и обратиться к ним.</div></div><br>
Недоступны мемберы. А имена - доступны. См. мой пример с неоднозначностью из-за добавления закрытого метода в базовый класс.<br>
Представь себе SFINAE с выбором специализации, допустим, по наличию внутреннего типа. Если у тебя будет соответствующий private-тип то SFINAE просто не сработает, а код не скомпилируется... <span class="tag-color tag-color-named" data-value="gray" style="color: gray">Хотя надо попробовать :D </span>]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212922</guid>
        <pubDate>Tue, 02 Oct 2012 11:52:40 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212922</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212921'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:51:28+00:00">02.10.12, 11:51</time></span><div class='quote '>Клиенту должны быть недоступны имена из закрытой части.</div></div><br>
Они и так недоступны&#33; Ты же хочешь, чтобы они были невидимы. Т.е. превратить спецификаторы доступа в спецификаторы видимости.]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212921</guid>
        <pubDate>Tue, 02 Oct 2012 11:51:28 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212921</link>
        <description><![CDATA[D_KEY: Я не говорю о Pimpl. Речь о том, что спецификаторы доступа должны влиять на поиск имен. Клиенту должны быть недоступны имена из закрытой части.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212918</guid>
        <pubDate>Tue, 02 Oct 2012 11:49:41 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212918</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212914'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:49:05+00:00">02.10.12, 11:49</time></span><div class='quote '>Так &quot;видь&quot; размер. Какое это отношение имеет к доступности имен?</div></div><br>
Так они не доступны :D Ты не можешь их вызвать и обратиться к ним.]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212917</guid>
        <pubDate>Tue, 02 Oct 2012 11:49:40 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212917</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212907'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:44:25+00:00">02.10.12, 11:44</time></span><div class='quote '>Автор C ничего не знает о private-частях своих предков. Иначе это не private. </div></div>В том то и дело, что знает. И в этом отличительная черта объектой модели Плюсов. Ты можешь обойти инкапсуляцию, если очень надо, и иначе никак. Это будет говнокод, но не всё говнокод, что так выглядит, иногда говнокодом является не он сам, а его основополагающая база, и написанный тобой говнокод - это едиственный способ решить проблему. В случее PImpl такого в принципе невозможно будет сделать. Выбор как всегда на нами, а не языком.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212914</guid>
        <pubDate>Tue, 02 Oct 2012 11:49:05 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212914</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212912'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:47:55+00:00">02.10.12, 11:47</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212910'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:45:53+00:00">02.10.12, 11:45</time></span><div class='quote '>Эм. Мы о поиске имен.</div></div><br>
Тебе нужно видеть из h-файла все приватные мемберы, чтобы сказать о размере. Ты хочешь двух правил для мемберов-полей и мемберов-функций?</div></div><br>
Так &quot;видь&quot; размер. Какое это отношение имеет к доступности имен?]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212912</guid>
        <pubDate>Tue, 02 Oct 2012 11:47:55 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212912</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212910'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:45:53+00:00">02.10.12, 11:45</time></span><div class='quote '>Эм. Мы о поиске имен.</div></div><br>
Тебе нужно видеть из h-файла все приватные мемберы, чтобы сказать о размере. Ты хочешь двух правил для мемберов-полей и мемберов-функций? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:48:56+00:00">02.10.12, 11:48</time></span></span><br>
Иными словами наследники и клиенты класса и так не защищены от изменения приватной части. Так чего ты ещё хочешь?]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212910</guid>
        <pubDate>Tue, 02 Oct 2012 11:45:53 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212910</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212904'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:41:08+00:00">02.10.12, 11:41</time></span><div class='quote '>Они и должны быть неознозначными.</div></div><br>
Т.е. проблемы у клиентов наследников, вызванные изменением <strong class='tag-b'>закрытой</strong> части базового класса, тебе кажутся абсолютно логичными? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:47:00+00:00">02.10.12, 11:47</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212909'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MyNameIsIgor &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:45:32+00:00">02.10.12, 11:45</time></span><div class='quote '>Хотя бы вычисление sizeof</div></div><br>
Эм. Мы о поиске имен.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212909</guid>
        <pubDate>Tue, 02 Oct 2012 11:45:32 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212909</link>
        <description><![CDATA[MyNameIsIgor: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212884'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:25:53+00:00">02.10.12, 11:25</time></span><div class='quote '>Но я пока не понял преимущества этой дырки в инкапсуляции. </div></div><br>
Хотя бы вычисление sizeof. А так - да, это дырка из-за отсутствия модульности. Но imho без модулей это решение Бьярна логично.]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212908</guid>
        <pubDate>Tue, 02 Oct 2012 11:45:25 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212908</link>
        <description><![CDATA[Qraizer: P.S. Если хочется полной инкапсуляции, а не контролируемой атрибутами, всегда есть PImpl.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212907</guid>
        <pubDate>Tue, 02 Oct 2012 11:44:25 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212907</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212904'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:41:08+00:00">02.10.12, 11:41</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212884'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:25:53+00:00">02.10.12, 11:25</time></span><div class='quote '>Иначе вызовы станут неоднозначными. Я не вижу в этом логики. </div></div>Они и должны быть неознозначными. Ты (я, <strong class='tag-b'>Flex Ferrum</strong>, компилятор, ... нужное подчекнуть) не знаю, какие f() и g() хотел вызвать автор C.</div></div><br>
Автор C ничего не знает о private-частях своих предков. Иначе это не private.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212904</guid>
        <pubDate>Tue, 02 Oct 2012 11:41:08 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212904</link>
        <description><![CDATA[Qraizer: Дырка? С чего это это дырка? Назначение атрибутов доступа - не более чем в контроле соблюдения интерфейсных контрактов. Связывание имён к интерфейсам не имеет никакого отношения.<br>
Компилятор должен сообщать обо всех нарушениях контрактов. Миллионом способов ты получишь диагностику. Конечно, ты можешь изменить всё, что душе вугодилось, даже сменить порядок вызова инициализации подобъектов и агрегатов, Плюсы вообще мало что запрещают абсолютно. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:43:33+00:00">02.10.12, 11:43</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212884'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:25:53+00:00">02.10.12, 11:25</time></span><div class='quote '>Иначе вызовы станут неоднозначными. Я не вижу в этом логики. </div></div>Они и должны быть неознозначными. Ты (я, <strong class='tag-b'>Flex Ferrum</strong>, компилятор, ... нужное подчекнуть) не знаешь, какие f() и g() хотел вызвать автор C. Я вот не вижу логики в противоположном поведении, имей оно место.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212884</guid>
        <pubDate>Tue, 02 Oct 2012 11:25:53 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212884</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212879'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:21:30+00:00">02.10.12, 11:21</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212876'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:18:21+00:00">02.10.12, 11:18</time></span><div class='quote '>Получается, что у нас даже закрытые члены остаются частью интерфейса класса.</div></div>Формально - да. Это как файл в каталоге - правов нет, а имя видно.</div></div><br>
Но я пока не понял преимущества этой дырки в инкапсуляции. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:26:48+00:00">02.10.12, 11:26</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212879'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:21:30+00:00">02.10.12, 11:21</time></span><div class='quote '>Вот таким элегантным способом мы из A меняем семантику кода нашего потомка B.</div></div><br>
Ты это можешь сделать миллионом способов... <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:37:34+00:00">02.10.12, 11:37</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212879'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:21:30+00:00">02.10.12, 11:21</time></span><div class='quote '>В непосредственном производном private-класс ещё доступен, в следующем уже нет. Вот таким элегантным способом мы из A меняем семантику кода нашего потомка B.</div></div><br>
Лучше представь себе другую ситуацию:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class A</div><div class="code_line">{</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp; void f();</div><div class="code_line">&nbsp;</div><div class="code_line">private:</div><div class="code_line">&nbsp;&nbsp; &nbsp; ...</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">class B</div><div class="code_line">{</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp; void g();</div><div class="code_line">&nbsp;</div><div class="code_line">private:</div><div class="code_line">&nbsp;&nbsp; &nbsp; ...</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">class C : public A, public B</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// берем открытую реализацию f из A, g из B</div><div class="code_line">...</div><div class="code_line">};</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Соответственно, имеем полное право написать:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">C c;</div><div class="code_line">c.f();</div><div class="code_line">c.g();</div></ol></div></div></div></div><br>
<br>
Но мы не можем написать private(&#33;) методы void g() в A и void f() в B... Иначе вызовы станут неоднозначными. Я не вижу в этом логики. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:40:55+00:00">02.10.12, 11:40</time></span></span><br>
Я уже молчу про возможные проблемы с SFINAE...]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212879</guid>
        <pubDate>Tue, 02 Oct 2012 11:21:30 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212879</link>
        <description><![CDATA[Qraizer: Та конечно &gt;:( . В непосредственном производном private-класс ещё доступен, в следующем уже нет. Вот таким элегантным способом мы из A меняем семантику кода нашего потомка B. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:22:43+00:00">02.10.12, 11:22</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212876'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:18:21+00:00">02.10.12, 11:18</time></span><div class='quote '>Получается, что у нас даже закрытые члены остаются частью интерфейса класса.</div></div>Формально - да. Это как файл в каталоге - правов нет, а имя видно.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212876</guid>
        <pubDate>Tue, 02 Oct 2012 11:18:21 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212876</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212866'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T11:10:34+00:00">02.10.12, 11:10</time></span><div class='quote '>Имеется очень веские основания подозревать, что программист (ошибочно) намеревался вызвать недоступный метод.</div></div><br>
Какие? На private вообще смотреть незачем... <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-10-02T11:19:34+00:00">02.10.12, 11:19</time></span></span><br>
Получается, что у нас даже закрытые члены остаются частью интерфейса класса.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212866</guid>
        <pubDate>Tue, 02 Oct 2012 11:10:34 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212866</link>
        <description><![CDATA[Qraizer: Но дык вот поэтому. Получится, что семантика зависит от кода, её не определяющего. Давай продолжим:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class Z { void f(int); };</div><div class="code_line">&nbsp;</div><div class="code_line">class A : protected Z {};</div><div class="code_line">&nbsp;</div><div class="code_line">class B : public A, public Z</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; using A::f;</div><div class="code_line">&nbsp;</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; void f(float);</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">B b;</div><div class="code_line">&nbsp;</div><div class="code_line">b.f(123);</div></ol></div></div></div></div>Хуже всего то, что компилятор не знает, что имел в виду программист, когда писал такой вызов. Имеется очень веские основания подозревать, что программист (ошибочно) намеревался вызвать недоступный метод. Ещё интересней заменить protected на private. Был производный &quot;реализован посредством&quot; базового, а позже базовый стал недокументируемой деталью реализации. Надеюсь не надо объяснять, что атрибут наследования ну вообще к семантике перегрузки методов не имеет никакого отношения.<br>
<br>
P.S. Я бы сравнил зависимость разрешения перегрузки от атрибутов доступа с зависимостью порядка инициазизации агрегатов и подобъектов от порядка записи инициализаторов в заголовке конструктора.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212856</guid>
        <pubDate>Tue, 02 Oct 2012 11:00:36 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212856</link>
        <description><![CDATA[Flex Ferrum: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212709'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>D_KEY &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T08:59:41+00:00">02.10.12, 08:59</time></span><div class='quote '>Не могу вспомнить, что в D&amp;E по этому поводу написано. Только про нежелание Страуструпа того, чтобы смена доступа влияла на семантику. </div></div><br>
Об этом Саттер, вроде бы, писал. Но сходу не скажу, где.]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212709</guid>
        <pubDate>Tue, 02 Oct 2012 08:59:41 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212709</link>
        <description><![CDATA[D_KEY: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=365145&view=findpost&p=3212707'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2012-10-02T08:55:34+00:00">02.10.12, 08:55</time></span><div class='quote '>Ага. Разрешение перегрузки не учитывает доступность. Доступность проверяется только по факту использования.</div></div><br>
Кстати, почему? Не могу вспомнить, что в D&amp;E по этому поводу написано. Только про нежелание Страуструпа того, чтобы смена доступа влияла на семантику.]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212707</guid>
        <pubDate>Tue, 02 Oct 2012 08:55:34 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212707</link>
        <description><![CDATA[Qraizer: Ага. Разрешение перегрузки не учитывает доступность. Доступность проверяется только по факту использования.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212612</guid>
        <pubDate>Tue, 02 Oct 2012 07:53:55 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3212612</link>
        <description><![CDATA[applegame: Значит если в вышеприведенном коде удалить наследование class B от std::enable_shared_from_this&lt;B&gt;, то ошибка все равно будет, но уже другая - о недоступности A::shared_from_this()?]]></description>
        <author>applegame</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3210957</guid>
        <pubDate>Sat, 29 Sep 2012 17:26:14 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3210957</link>
        <description><![CDATA[Qraizer: Не не может, а должен. Видимость и доступность друг с другом никак не связаны. Сам посуди: смена доступности вдруг изменила семантику кода. Или: ты хотел вызвать одну, но забыл или не учёл, что она недоступна, поэтому молча вызвалась другая. Итп. Чем меньше неявных решений принимает компилятор, тем надёжней код, потому что программист вовремя оповещается о возможных ошибках и заблуждениях.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3210936</guid>
        <pubDate>Sat, 29 Sep 2012 16:50:18 +0000</pubDate>
        <title>Неоднозначность shared_from_this</title>
        <link>https://forum.sources.ru/index.php?showtopic=365145&amp;view=findpost&amp;p=3210936</link>
        <description><![CDATA[OpenGL: Наткнулся тут на неоднозначность, причину которой не вполне понимаю. Есть такие классы:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class A : private std::enable_shared_from_this&#60;A&#62;</div><div class="code_line">{</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">class B: public A, private std::enable_shared_from_this&#60;B&#62;</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;void f()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;shared_from_this(); // Тут ошибка - &nbsp;reference to &#39;shared_from_this&#39; is ambiguous </div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">};</div></ol></div></div></div></div><br>
Почему так происходит? Ведь A унаследован от enable_shared_from_this приватно, а значит B shared_from_this видеть не может.]]></description>
        <author>OpenGL</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	