<?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=80070&amp;view=findpost&amp;p=588152</guid>
        <pubDate>Mon, 24 Jan 2005 07:18:24 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=588152</link>
        <description><![CDATA[mikv: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
---------- Compile with bcc55 ----------<br>
Borland C++ 5.5 for Win32 Copyright &copy; 1993, 2000 Borland<br>
C:&#092;Downloads&#092;Docs&#092;123456&#092;123.cpp:<br>
Error E2171 C:&#092;Temp&#092;123456&#092;123.cpp 12: Body has already been defined for function &#39;D::~D()&#39;<br>
*** 1 errors in Compile ***<br>
Output completed (1 sec consumed) - Normal Termination<br>
</div></div>]]></description>
        <author>mikv</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=587673</guid>
        <pubDate>Sun, 23 Jan 2005 17:05:16 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=587673</link>
        <description><![CDATA[мяут: BCB.<br>
[C++ Error] Unit1.cpp(19): E2171 Body has already been defined for function &#39;D::~D()&#39;]]></description>
        <author>мяут</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583291</guid>
        <pubDate>Wed, 19 Jan 2005 22:03:05 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583291</link>
        <description><![CDATA[Flex Ferrum: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583164'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>byte &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T19:01:50+00:00">19.01.05, 19:01</time></span><div class='quote '>По идее о багах компилера надо сообщать разработчикам?</div></div><br>
Ну да. Если компилятор не нашел ошибок в вашей программе - сообщите разработчикам. Они найдут ошибки в компиляторе. Старая программерская поговорка.]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583164</guid>
        <pubDate>Wed, 19 Jan 2005 19:01:50 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583164</link>
        <description><![CDATA[byte: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583160'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Flex Ferrum &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T18:58:11+00:00">19.01.05, 18:58</time></span><div class='quote '>VC &quot;исправляется&quot; если убрать наследование.</div></div><br>
 :yes: это я тоже заметил :)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583160'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Flex Ferrum &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T18:58:11+00:00">19.01.05, 18:58</time></span><div class='quote '>Значит, баг в компиляторе...</div></div><br>
По идее о багах компилера надо сообщать разработчикам? :rolleyes: Видел, как на RSDN&#39;е это делается: кто-то пишет bug report, MS-овцы на него отвечают, собираются ли править и тд.. Может сообщить им? Может кто-то уже имел дело с этим?]]></description>
        <author>byte</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583160</guid>
        <pubDate>Wed, 19 Jan 2005 18:58:11 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583160</link>
        <description><![CDATA[Flex Ferrum: Да, а вот начало раздела 12 я не прочитал... VC &quot;исправляется&quot; если убрать наследование. Значит, баг в компиляторе... Хотя и весьма интересный.]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583093</guid>
        <pubDate>Wed, 19 Jan 2005 17:35:34 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583093</link>
        <description><![CDATA[byte: <strong class='tag-b'>Шерлок Холмс</strong>, я примерно понимаю, что происходит :)<br>
Но лично мне было бы интересней знать не то, <strong class='tag-b'>как</strong> ведет себя компилятор, а <strong class='tag-b'>почему</strong> он ведет себя так и как <strong class='tag-b'>должен себя вести.</strong><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="2005-01-19T17:51:32+00:00">19.01.05, 17:51</time></span></span><br>
<strong class='tag-b'>Flex Ferrum</strong>, <br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Programs  shall  not define  implicitly-declared  special  member  functions.</div></div><br>
(начало главы 12 в стандарте) То есть нельзя определять неявно объявленные специальные функции-члены класса(надеюсь, понятно, какие)<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>If a class has no user-declared destructor, a destructor is declared implicitly.</div></div><br>
(12.4.3) То есть если мы не объявляем деструктор явно, компилятор делает это за нас.<br>
<br>
Ты не объявляешь для структуры D деструктор явно =&gt; это делает компилятор. То есть ты получаешь &quot;implicitly-declared special member function&quot;. А их нельзя определять явно.<br>
<br>
То есть, грубо говоря, приведенная тобой программа ill-formed. <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="2005-01-19T17:54:32+00:00">19.01.05, 17:54</time></span></span><br>
Следовательно, поведение Intel&#39;овского компилятора и g++ оправдано, а VC - нет.]]></description>
        <author>byte</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583086</guid>
        <pubDate>Wed, 19 Jan 2005 17:30:03 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583086</link>
        <description><![CDATA[Шерлок Холмс: ну, допустим компилятор не нашел объявление ~D(); и создал его, а потом нашел тело (твоей ~D()) этого деструктора и скомпилил.]]></description>
        <author>Шерлок Холмс</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583079</guid>
        <pubDate>Wed, 19 Jan 2005 17:26:57 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583079</link>
        <description><![CDATA[byte: <strong class='tag-b'>Шерлок Холмс</strong>, дык вот в чем прикол-то. Деструктор <strong class='tag-b'>не объявлен, но определен</strong>. И вопрос в том, как должен вести себя компилятор?<br>
Роюсь в стандарте.. :rolleyes:]]></description>
        <author>byte</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583075</guid>
        <pubDate>Wed, 19 Jan 2005 17:22:34 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583075</link>
        <description><![CDATA[Шерлок Холмс: <strong class='tag-b'>byte</strong>, это значит токо, что разработчики Intel C++ не очень читали стандарт&#33;<br>
<span class="tag-color tag-color-named" data-value="red" style="color: red">В стандарте сказано, что конструкторы (копирования) и т.п., если их нет должны создаваться самим компилятром.</span>]]></description>
        <author>Шерлок Холмс</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583070</guid>
        <pubDate>Wed, 19 Jan 2005 17:17:09 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583070</link>
        <description><![CDATA[byte: VC7.1 компилит, результат изложен выше.<br>
Intel C++ ругается:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>error: defining an implicitly declared member function is not allowed<br>
  D::~D() {std::cout &lt;&lt; &quot;D::~D&quot; &lt;&lt; std::endl;}</div></div>]]></description>
        <author>byte</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583064</guid>
        <pubDate>Wed, 19 Jan 2005 17:10:07 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583064</link>
        <description><![CDATA[Шерлок Холмс: Имеем:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
D::~D<br>
B::~B<br>
</div></div><br>
<br>
Все правильно&#33; <br>
Если ты о return, то ето на совести разработчиков компилятора. Для &quot;пустого&quot; класса будет выделен 1 байт <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="2005-01-19T17:13:53+00:00">19.01.05, 17:13</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583052'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>XE&#045;XE &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T16:54:53+00:00">19.01.05, 16:54</time></span><div class='quote '>definition of implicitly-declared `D::~D()&#39; (g++ 2.95.3)</div></div><br>
В стандарте сказано, что конструкторы (копирования) и т.п., если их нет создаются компилятром.]]></description>
        <author>Шерлок Холмс</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583052</guid>
        <pubDate>Wed, 19 Jan 2005 16:54:53 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583052</link>
        <description><![CDATA[XE-XE: definition of implicitly-declared `D::~D()&#39; (g++ 2.95.3)]]></description>
        <author>XE-XE</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583042</guid>
        <pubDate>Wed, 19 Jan 2005 16:43:52 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583042</link>
        <description><![CDATA[FlatBug: <strong class='tag-b'>7ёрка компилит. ерроров нет.</strong><br>
<br>
7ёрка рулит. она круче 6ёрки&#33;&#33;&#33; 8-) <br>
<br>
Я победил? Приз в студию&#33;&#33;&#33; УРА-УРА&#33;&#33;&#33; :D]]></description>
        <author>FlatBug</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583039</guid>
        <pubDate>Wed, 19 Jan 2005 16:38:18 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583039</link>
        <description><![CDATA[Flex Ferrum: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583032'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Lucifer &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T16:33:25+00:00">19.01.05, 16:33</time></span><div class='quote '>7.1 нихт. В ней откомпилится? </div></div><br>
Я пока обожду с ответом на этот вопрос....]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583032</guid>
        <pubDate>Wed, 19 Jan 2005 16:33:25 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583032</link>
        <description><![CDATA[Lucifer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=80070&view=findpost&p=583028'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Flex Ferrum &#064; <time class="tag-quote__quoted-time" datetime="2005-01-19T16:28:21+00:00">19.01.05, 16:28</time></span><div class='quote '>Lucifer, попробуй на 7.1  А потом обоснуй результат. </div></div><br>
7.1 нихт. В ней откомпилится?]]></description>
        <author>Lucifer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583028</guid>
        <pubDate>Wed, 19 Jan 2005 16:28:21 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583028</link>
        <description><![CDATA[Flex Ferrum: <strong class='tag-b'>Lucifer</strong>, попробуй на 7.1 :) А потом обоснуй результат.]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583025</guid>
        <pubDate>Wed, 19 Jan 2005 16:25:52 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583025</link>
        <description><![CDATA[Lucifer: 6-ка матерится при компиляции]]></description>
        <author>Lucifer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583019</guid>
        <pubDate>Wed, 19 Jan 2005 16:14:01 +0000</pubDate>
        <title>Хитрый деструктор</title>
        <link>https://forum.sources.ru/index.php?showtopic=80070&amp;view=findpost&amp;p=583019</link>
        <description><![CDATA[Flex Ferrum: ОС: Любая<br>
Компилятор: Любой<br>
<br>
Народ жаловался, что нет интересных вопросов. Попробую исправить эту ситуацию.<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">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">struct B</div><div class="code_line">{</div><div class="code_line">~B() {std::cout &#60;&#60; &quot;B::~B&quot; &#60;&#60; std::endl;}</div><div class="code_line">};</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">struct D : B</div><div class="code_line">{</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">D::~D() {std::cout &#60;&#60; &quot;D::~D&quot; &#60;&#60; std::endl;}</div><div class="code_line">&nbsp;</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">D d;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Внимание, вопрос.<br>
Как отнесется к этому коду ваш любимый компилятор? И насколько реакция вашего компилятора соответствует стандарту?]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	