<?xml version='1.0' encoding="windows-1251"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>http://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2691323</guid>
        <pubDate>Tue, 07 Sep 2010 22:31:29 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2691323</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2683457'><b>Цитата</b></a> (Masterkent &#064; 31.08.10, 03:53)<div class='QUOTE '>Похоже, из C++0x могут удалить ни кем пока не реализованные фичи.<br />
<br />
User-defined literals<br />
Ref-qualifiers<br />
Inheriting constructors</div></div><br />
Ну, тут бабушка ещё на двое сказала. Это предложение только одной из стран (если я правильно понимаю аббревиатуру). С этим должны согласиться большинство, чтобы быть принятым. А переколбашивать драфт стандарта перед самым принятием - это жесть. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2683457</guid>
        <pubDate>Tue, 31 Aug 2010 04:53:26 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2683457</link>
        <description><![CDATA[Masterkent:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2354970'><b>Цитата</b></a> (Flex Ferrum &#064; 2.09.09, 11:49)<div class='QUOTE '>Пока все идет к тому, что кроме концептов из стандарта ничего выкидывать не будут. </div></div><br />
Похоже, из C++0x могут удалить ни кем пока не реализованные фичи.<br />
<br />
<a href='http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3115.html#1108' target='_blank'>User-defined literals</a><br />
<a href='http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3115.html#1143' target='_blank'>Ref-qualifiers</a><br />
<a href='http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3115.html#1150' target='_blank'>Inheriting constructors</a><br />
<br />
Работа комитета по стандартизации C++ радует всё больше и больше. Что правила C++ там толком не знают ([<a href='http://groups.google.com.mt/group/comp.std.c++/msg/a37d4699d0a6a1a7' target='_blank'>1</a>][<a href='http://groups.google.com.ng/group/comp.std.c++/msg/96e3f5e7cc8a7d97' target='_blank'>2</a>][<a href='http://groups.google.com/group/comp.lang.c++.moderated/msg/803ebdb1f67b1655' target='_blank'>3</a>]) я уже выяснил давно. Что некоторые члены комитета плохо владеют логикой и не пригодны для составления корректных формальных описаний выяснилось сравнительно недавно [<a href='http://groups.google.com/group/comp.std.c++/browse_thread/thread/f411064574e99447' target='_blank'>1</a>][<a href='http://groups.google.com.mt/group/comp.lang.c++.moderated/browse_thread/thread/d26ca5ac0adfbe50' target='_blank'>2</a>][<a href='http://groups.google.ru/group/comp.lang.c++.moderated/browse_thread/thread/b73c7f652575d200' target='_blank'>3</a>][<a href='https://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/17f654cbf6aa6bdc' target='_blank'>4</a>]. Теперь ещё нелепая мотивация <a href='http://groups.google.com/group/comp.lang.c++.moderated/msg/7eb97d8867e7ba6a' target='_blank'>добавления</a> правил и удаления фич добавилась к послужному списку.<br />
<br />
Hint: D. Krugler, A. Williams и S. Clamage состоят в рабочих группах комитета по стандартизации C++. ]]></description>
        <author>Masterkent</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2668278</guid>
        <pubDate>Fri, 13 Aug 2010 11:59:14 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2668278</link>
        <description><![CDATA[Flex Ferrum:  boost::variant? Проще некуда. <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'><br />
<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">template&#60;int I, typename ... T&#62;</div><div class="code_line">union variant_data;</div><div class="code_line">&nbsp;</div><div class="code_line">template&#60;int I, typename T, typename ... Tail&#62;</div><div class="code_line">union variant_data&#60;I, T, Tail ...&#62;</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;T m_data;</div><div class="code_line">&nbsp;&nbsp; &nbsp;variant_data&#60;I + 1, Tail ...&#62; m_tail;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;variant_data() {;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;~variant_data() {;}</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">template&#60;int I, typename T&#62;</div><div class="code_line">union variant_data&#60;I, T&#62;</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;T m_data;</div><div class="code_line">&nbsp;&nbsp; &nbsp;variant_data() {;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;~variant_data() {;}</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">template&#60;typename ... T&#62;</div><div class="code_line">struct variant</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int m_dataIdx;</div><div class="code_line">&nbsp;&nbsp; &nbsp;variant_data&#60;sizeof ... (T), T ...&#62; m_variantData;</div><div class="code_line">};</div></ol></div></div></div></div><script>preloadCodeButtons('1')</script> ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653195</guid>
        <pubDate>Tue, 27 Jul 2010 10:03:26 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653195</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2653194'><b>Цитата</b></a> (trainer &#064; 27.07.10, 09:02)<div class='QUOTE '>последней редакции предложения. Его же еще не приняли? </div></div><br />
Ну, да. <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653194</guid>
        <pubDate>Tue, 27 Jul 2010 10:02:40 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653194</link>
        <description><![CDATA[trainer:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2653169'><b>Цитата</b></a> (Flex Ferrum &#064; 27.07.10, 08:47)<div class='QUOTE '>в последней редакции стандарта</div></div>последней редакции предложения. Его же еще не приняли? ]]></description>
        <author>trainer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653169</guid>
        <pubDate>Tue, 27 Jul 2010 09:47:41 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653169</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2653120'><b>Цитата</b></a> (ShapovalovTS &#064; 27.07.10, 06:01)<div class='QUOTE '>Получается, еще недореализовали стандарт в тестируемом мною компиляторе? </div></div><br />
Такие изменения - только в последней редакции стандарта (конец марта 2010-го года). Очевидно, что ещё ни один компиль это не реализует. Да и не зафиксировано это ещё окончательно. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653120</guid>
        <pubDate>Tue, 27 Jul 2010 07:01:25 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2653120</link>
        <description><![CDATA[ShapovalovTS:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652373'><b>Цитата</b></a> (Flex Ferrum &#064; 26.07.10, 12:55)<div class='QUOTE '>Хотя (по <i>последней</i> редакции стандарта) должно работать так:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; // При объявлении типа мапы:</div><div class="code_line">&nbsp;&nbsp; typedef std::multimap&#60;int, A, bool (*)(A a1, A a2)&#62; mmap_type;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; // при объявлении экземпляра мультимапы:</div><div class="code_line">&nbsp;&nbsp; mmap_type m([](A a1, A a2) {return a1.i &#60; a2.i; });</div></ol></div></div></div></div></div></div><br />
Интересное своей краткостью решение, но компилятор к сожалению ругается. Код (lambda.h):<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;multimap.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">struct A {</div><div class="code_line">&nbsp;&nbsp; &nbsp;int i;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">class B {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;typedef std::multimap&#60;A, int, bool (*)(A, A)&#62; mmap_type;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mmap_type m;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;B() : m([](A a1, A a2) {return a1.i &#60; a2.i; }) &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">};</div></ol></div></div></div></div><br />
И сама ошибка:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">lambda.h(13): error: no instance of constructor &quot;std::multimap&#60;_Key, _Tp, _Compare, _Alloc&#62;::multimap [with _Key=A, _Tp=int, _Compare=bool (*)(A, A), _Alloc=std::allocator&#60;std::pair&#60;const A, int&#62;&#62;]&quot; matches the argument list</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;argument types are: (lambda [](A, A)-&#62;bool)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;B() : m([](A a1, A a2) {return a1.i &#60; a2.i; }) &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^</div><div class="code_line">&nbsp;</div><div class="code_line">compilation aborted for lambda.cpp (code 2)</div></ol></div></div></div></div><br />
В случае приведения в строке 13 к <i>mmap_type::key_compare</i> получаем это: <br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">lambda.h(13): error: no suitable conversion function from &quot;lambda [](A, A)-&#62;bool&quot; to &quot;bool (*)(A, A)&quot; exists</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;B() : m(mmap_type::key_compare([](A a1, A a2) {return a1.i &#60; a2.i; }) ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^</div><div class="code_line">&nbsp;</div><div class="code_line">compilation aborted for lambda.cpp (code 2)</div></ol></div></div></div></div><br />
Получается, еще недореализовали стандарт в тестируемом мною компиляторе? ]]></description>
        <author>ShapovalovTS</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652548</guid>
        <pubDate>Mon, 26 Jul 2010 16:01:53 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652548</link>
        <description><![CDATA[MyNameIsIgor:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652453'><b>Цитата</b></a> (Flex Ferrum &#064; 26.07.10, 13:49)<div class='QUOTE '>Ну, это классика, которая уже перенесена в STL. </div></div><br />
В это же нет ничего плохого <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'><br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652453'><b>Цитата</b></a> (Flex Ferrum &#064; 26.07.10, 13:49)<div class='QUOTE '>Да как сказать... Вполне может заинлайнить. </div></div><br />
Подумал... Да, может <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652453</guid>
        <pubDate>Mon, 26 Jul 2010 14:49:01 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652453</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652379'><b>Цитата</b></a> (MyNameIsIgor &#064; 26.07.10, 12:58)<div class='QUOTE '>А чем вариант с отдельным компаратором не устраивает?</div></div><br />
Ну, это классика, которая уже перенесена в STL. <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 26.07.10, 13:49</span></span><br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652379'><b>Цитата</b></a> (MyNameIsIgor &#064; 26.07.10, 12:58)<div class='QUOTE '>Но, опять же, на inline такого простейшего сравнения не приходится надеяться. </div></div><br />
Да как сказать... Вполне может заинлайнить. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652379</guid>
        <pubDate>Mon, 26 Jul 2010 13:58:07 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652379</link>
        <description><![CDATA[MyNameIsIgor:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652373'><b>Цитата</b></a> (Flex Ferrum &#064; 26.07.10, 12:55)<div class='QUOTE '>А иначе то - никак. По большому счёту.</div></div><br />
А чем вариант с отдельным компаратором не устраивает?<br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652373'><b>Цитата</b></a> (Flex Ferrum &#064; 26.07.10, 12:55)<div class='QUOTE '>Т. е. в случае, если лямбла идёт без capture-списка, то должна спокойно приводиться к указателю на функцию с соответствующей сигнатурой. </div></div><br />
Но, опять же, на inline такого простейшего сравнения не приходится надеяться. ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652373</guid>
        <pubDate>Mon, 26 Jul 2010 13:55:02 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652373</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652367'><b>Цитата</b></a> (MyNameIsIgor &#064; 26.07.10, 12:52)<div class='QUOTE '>Flex Ferrum, я думал об этом. Но иметь полиморфный вызов для сравнения - не по плюсовому как-то <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'></div></div><br />
А иначе то - никак. По большому счёту. Хотя (по <i>последней</i> редакции стандарта) должно работать так:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; // При объявлении типа мапы:</div><div class="code_line">&nbsp;&nbsp; typedef std::multimap&#60;int, A, bool (*)(A a1, A a2)&#62; mmap_type;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; // при объявлении экземпляра мультимапы:</div><div class="code_line">&nbsp;&nbsp; mmap_type m([](A a1, A a2) {return a1.i &#60; a2.i; });</div></ol></div></div></div></div><br />
Т. е. в случае, если лямбла идёт без capture-списка, то должна спокойно приводиться к указателю на функцию с соответствующей сигнатурой. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652367</guid>
        <pubDate>Mon, 26 Jul 2010 13:52:12 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652367</link>
        <description><![CDATA[MyNameIsIgor:  <b>Flex Ferrum</b>, я думал об этом. Но иметь полиморфный вызов для сравнения - не по плюсовому как-то <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'> ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652252</guid>
        <pubDate>Mon, 26 Jul 2010 12:18:00 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652252</link>
        <description><![CDATA[Flex Ferrum:  Эммм... Что-то вы не то и не с тем мешаете. <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'><br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// При объявлении типа мапы:</div><div class="code_line">typedef std::multimap&#60;int, A, std::function&#60;bool (A const&amp;, A const&amp;)&#62;&#62; mmap_type;</div><div class="code_line">&nbsp;</div><div class="code_line">// при объявлении экземпляра мультимапы:</div><div class="code_line">mmap_type m([](A a1, A a2) {return a1.i &#60; a2.i; });</div></ol></div></div></div></div><br />
Как-то так. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652245</guid>
        <pubDate>Mon, 26 Jul 2010 12:12:25 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652245</link>
        <description><![CDATA[MyNameIsIgor:  <b>ShapovalovTS</b>, тогда я бы сделал так<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class B {</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct A {int i;};</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct comparator : public std::binary_function&#60;A, A, bool&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bool operator() (const A&amp; first, const A&amp; second) const { return first.i &#60; second.i; }</div><div class="code_line">&nbsp;&nbsp; &nbsp;};</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::multimap&#60;A, int, comparator&#62; m;</div><div class="code_line">};</div></ol></div></div></div></div> ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652117</guid>
        <pubDate>Mon, 26 Jul 2010 09:39:42 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652117</link>
        <description><![CDATA[ShapovalovTS:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652103'><b>Цитата</b></a> (MyNameIsIgor &#064; 26.07.10, 08:18)<div class='QUOTE '><br />
Или вы хотите в таком виде?<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">typedef decltype([](A a1, A a2) {return a1.i &#60; a2.i; }) some_type;</div></ol></div></div></div></div><br />
</div></div><br />
Да, хотелось бы не выносить тип из объявления класса, в котором идет работа с std::multimap. Мой компилятор от Intel тоже отказывается подобное компилировать:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class B {</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct A {int i;};</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;typedef decltype([](A a1, A a2) {return a1.i &#60; a2.i; }) some_type;</div><div class="code_line">};</div></ol></div></div></div></div> ]]></description>
        <author>ShapovalovTS</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652103</guid>
        <pubDate>Mon, 26 Jul 2010 09:18:31 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652103</link>
        <description><![CDATA[MyNameIsIgor:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2652099'><b>Цитата</b></a> (ShapovalovTS &#064; 26.07.10, 08:07)<div class='QUOTE '>А есть ли в этом случае способ в новом стандарте заменить auto f на что-то типа typedef &lt;lambda-expr&gt; f; в объявлении класса</div></div><br />
Я немного не понял, что вы хотите сделать. В том то и дело, что тип лямбды нам неизвестен, потому typedef мы можем сделать только с использованием decltype<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">auto f = [](A a1, A a2) {return a1.i &#60; a2.i; };</div><div class="code_line">typedef decltype(f) some_type;</div></ol></div></div></div></div><br />
Если же вам нужно, чтобы тип компаратора был виден глобально, то больше смысла будет в создании функтора, так сказать, &quot;по-старинке&quot;, а не в использовании лямбды. Всё же лямбда - это что-то для локального использования. <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 26.07.10, 08:23</span></span><br />
Или вы хотите в таком виде?<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">typedef decltype([](A a1, A a2) {return a1.i &#60; a2.i; }) some_type;</div></ol></div></div></div></div><br />
Тут нужно знатоков стандарта, ибо я не знаю, законна ли такая конструкция в принципе. Но у меня в gcc 4.5 она не компилировалась.<br />
И в таком случае не получится создать экземпляр этого типа. Т.е. код<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">some_type f;</div></ol></div></div></div></div><br />
не скомпилируется, потому что у лямбд нет конструктора по умолчанию. ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652099</guid>
        <pubDate>Mon, 26 Jul 2010 09:07:19 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652099</link>
        <description><![CDATA[ShapovalovTS:  <b>MyNameIsIgor</b>, спасибо за ответ, в таком виде компилятор код воспринимает. Со сравнением int-ов - тоже верное замечание.<br />
<br />
А есть ли в этом случае способ в новом стандарте заменить <i>auto f</i> на что-то типа <i>typedef &lt;lambda-expr&gt; f;</i> в объявлении класса, иначе приходится выносить этот код на уровень выше, чего делать не хотелось бы. ]]></description>
        <author>ShapovalovTS</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652094</guid>
        <pubDate>Mon, 26 Jul 2010 08:27:03 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652094</link>
        <description><![CDATA[MyNameIsIgor:  <b>ShapovalovTS</b>, аргументом шаблона должен быть тип компаратора, а данное выражение<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">[](A a1, A a2) -&#62; bool {return a1.i &#60; a2.i; }</div></ol></div></div></div></div><br />
создаёт, как я понимаю, именно экземпляр лямбды. И, кстати, в данном случае не обязательно указывать возвращаемый лямбдой тип.<br />
Для получения типа лямбды можно использовать decltype как-то так:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">auto f = [](A a1, A a2) {return a1.i &#60; a2.i; };</div><div class="code_line">std::multimap&#60;int, A, decltype(f)&#62; m(f);</div></ol></div></div></div></div><br />
Поскольку для лямбд не гарантируется наличие конструктора по умолчанию, то мы передаём экземпляр лямбды в конструктор multimap&#39;а. <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 26.07.10, 07:31</span></span><br />
Кстати, только сейчас заметил <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> Компаратор то должен ключи сравнивать, т.е. int&#39;ы в вашем случае, а у вас он сравнивает объекты типа A. ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652093</guid>
        <pubDate>Mon, 26 Jul 2010 08:15:26 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2652093</link>
        <description><![CDATA[ShapovalovTS:  Не до конца понимаю варианты использования lambda-функции в новом стандарте. Если я хочу объявить multimap с компаратором в виде lambda-функции, то по идее код будет примерно следующим:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">struct A {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int i;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">std::multimap&#60;int, A,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;[](A a1, A a2) -&#62; bool {return a1.i &#60; a2.i; }</div><div class="code_line">&#62; m;</div></ol></div></div></div></div><br />
<br />
Но компилятор (intel c++ 12 beta с  ключём -std=c++0x), который запросто воспринимает lambda в других местах, в таком объявлении не понимает синтаксиса. Возможно ли такое использование lambda-функций? ]]></description>
        <author>ShapovalovTS</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588812</guid>
        <pubDate>Fri, 07 May 2010 21:27:33 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588812</link>
        <description><![CDATA[niXman:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2588760'><b>Цитата</b></a> (MyNameIsIgor &#064; 7.05.10, 19:11)<div class='QUOTE '>там же написано - во thread</div></div><br />
я изначально не понял, это в бустовских или компилятора хидерах. ]]></description>
        <author>niXman</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588760</guid>
        <pubDate>Fri, 07 May 2010 20:11:16 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588760</link>
        <description><![CDATA[MyNameIsIgor:  <b>niXman</b>, там же написано - во thread <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'><br />
Не помню точно путь в винде, но судя по линухе - includes/c++/4.5.0/thread ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588753</guid>
        <pubDate>Fri, 07 May 2010 20:03:52 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588753</link>
        <description><![CDATA[niXman:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2588032'><b>Цитата</b></a> (MyNameIsIgor &#064; 7.05.10, 09:10)<div class='QUOTE '><b>Flex Ferrum</b>, на последней вашей сборке тоже не компилится. В thread есть такая директива препроцессора<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#if defined(_GLIBCXX_HAS_GTHREADS) &amp;&amp; defined(_GLIBCXX_USE_C99_STDINT_TR1)</div></ol></div></div></div></div><br />
Как я понял, она есть false, и код с классом thread просто не существует при компиляции.</div></div><br />
в каком файле? ]]></description>
        <author>niXman</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588115</guid>
        <pubDate>Fri, 07 May 2010 10:47:28 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588115</link>
        <description><![CDATA[MyNameIsIgor:  <b>Flex Ferrum</b>, ясно. Значит, придётся ставить эксперименты самому <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588102</guid>
        <pubDate>Fri, 07 May 2010 10:43:59 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588102</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2588078'><b>Цитата</b></a> (MyNameIsIgor &#064; 7.05.10, 09:34)<div class='QUOTE '>При сборке MinGW? </div></div><br />
Ну да. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588078</guid>
        <pubDate>Fri, 07 May 2010 10:34:44 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588078</link>
        <description><![CDATA[MyNameIsIgor:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2588037'><b>Цитата</b></a> (Flex Ferrum &#064; 7.05.10, 09:14)<div class='QUOTE '>либо есть некие ключи конфигурации, которые можно выставить (при сборке)</div></div><br />
При сборке MinGW? ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588037</guid>
        <pubDate>Fri, 07 May 2010 10:14:06 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588037</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2588032'><b>Цитата</b></a> (MyNameIsIgor &#064; 7.05.10, 09:10)<div class='QUOTE '>Как я понял, она есть false, и код с классом thread просто не существует при компиляции. </div></div><br />
Ну, одно из двух. Либо не поправили, либо есть некие ключи конфигурации, которые можно выставить (при сборке), чтобы это заработало. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588032</guid>
        <pubDate>Fri, 07 May 2010 10:10:53 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2588032</link>
        <description><![CDATA[MyNameIsIgor:  <b>Flex Ferrum</b>, на последней вашей сборке тоже не компилится. В thread есть такая директива препроцессора<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#if defined(_GLIBCXX_HAS_GTHREADS) &amp;&amp; defined(_GLIBCXX_USE_C99_STDINT_TR1)</div></ol></div></div></div></div><br />
Как я понял, она есть false, и код с классом thread просто не существует при компиляции. ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587994</guid>
        <pubDate>Fri, 07 May 2010 09:34:03 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587994</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2587772'><b>Цитата</b></a> (niXman &#064; 6.05.10, 21:24)<div class='QUOTE '>но использую std::thread, там с этим нет проблем.</div></div><br />
В gcc у него под виндой проблемы. Просто не компиляется. Хотя, возможно, с последнего раза, как я это пробовал - уже пофиксили. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587779</guid>
        <pubDate>Thu, 06 May 2010 22:29:21 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587779</link>
        <description><![CDATA[DEADHUNT:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2587772'><b>Цитата</b></a> (niXman &#064; 6.05.10, 21:24)<div class='QUOTE '>замечал сей баг. но использую std::thread, там с этим нет проблем.<br />
а что(как) править нужно? </div></div><br />
там же что типа этого:<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#ifdef HAVE_RVALUE_REFERENCES</div><div class="code_line">....</div><div class="code_line">#else</div><div class="code_line">...</div><div class="code_line">#endif</div></ol></div></div></div></div><br />
значит надо добавить #undef соответствующий в начало заголовка.<br />
только в стандартной библиотеке libstdc++ не реализовали std::this_thread::yield, в boost реализовали. ]]></description>
        <author>DEADHUNT</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587772</guid>
        <pubDate>Thu, 06 May 2010 22:24:05 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587772</link>
        <description><![CDATA[niXman:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2587741'><b>Цитата</b></a> (DEADHUNT &#064; 6.05.10, 20:36)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2587628'><b>Цитата</b></a> (Большой &#064; 6.05.10, 18:55)<div class='QUOTE '>boost обновился </div></div><br />
только вот это похоже не исправили <a href='https://svn.boost.org/trac/boost/ticket/3844' target='_blank'>https://svn.boost.org/trac/boost/ticket/3844</a> поэтому не получается использовать boost.thread в gcc с включенным C++0x, приходится вручную править заголовочный файл.</div></div><br />
замечал сей баг. но использую std::thread, там с этим нет проблем.<br />
а что(как) править нужно? ]]></description>
        <author>niXman</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587741</guid>
        <pubDate>Thu, 06 May 2010 21:36:37 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587741</link>
        <description><![CDATA[DEADHUNT:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2587628'><b>Цитата</b></a> (Большой &#064; 6.05.10, 18:55)<div class='QUOTE '>boost обновился </div></div><br />
только вот это похоже не исправили <a href='https://svn.boost.org/trac/boost/ticket/3844' target='_blank'>https://svn.boost.org/trac/boost/ticket/3844</a> поэтому не получается использовать boost.thread в gcc с включенным C++0x, приходится вручную править заголовочный файл. ]]></description>
        <author>DEADHUNT</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587628</guid>
        <pubDate>Thu, 06 May 2010 19:55:39 +0400</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2587628</link>
        <description><![CDATA[Большой:  boost обновился <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> ]]></description>
        <author>Большой</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2537178</guid>
        <pubDate>Wed, 17 Mar 2010 16:19:21 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2537178</link>
        <description><![CDATA[Бобёр:  <div><b>Цитата</b> <div class='QUOTE '>C++0x could officially be published as soon as next year as ISO C++ 2011, and we can stop with the “x-is-hex” jokes and just start calling it C++11.</div></div><br />
Ну.. хочется в это верить <img src='http://forum.sources.ru/smiles/Main/yes.gif' border='0' alt=':yes:'> ]]></description>
        <author>Бобёр</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2535877</guid>
        <pubDate>Tue, 16 Mar 2010 15:15:52 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2535877</link>
        <description><![CDATA[Flex Ferrum:  Последние новости из комитета по стандартизации:<br><br><a href='http://herbsutter.wordpress.com/2010/03/13/trip-report-march-2010-iso-c-standards-meeting/' target='_blank'>http://herbsutter.wordpress.com/2010/03/13...ndards-meeting/</a> ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510466</guid>
        <pubDate>Fri, 19 Feb 2010 23:01:22 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510466</link>
        <description><![CDATA[olias:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2510341'><b>Цитата</b></a> (Flex Ferrum &#064; 19.02.10, 20:23)<div class='QUOTE '>успешно удался эксперимент по прикручиванию 2010-го компиля к 2008-ой студии.</div></div><br />
Симлинки на папку(-и), делов-то. Но в 2010 с этим ещё проще, там появились (давно пора) тулсеты и можно выбирать, чем ты хочешь компилировать. ]]></description>
        <author>olias</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510341</guid>
        <pubDate>Fri, 19 Feb 2010 20:23:11 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510341</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2510335'><b>Цитата</b></a> (B.V. &#064; 19.02.10, 20:16)<div class='QUOTE '>Это опечатка, а не зверь. Конечно, FeaturePack </div></div><br />
Если 2008-го года, то там от C++0x - только расширение STL  из tr1. Больше ничего. Но мне, честно говоря, успешно удался эксперимент по прикручиванию 2010-го компиля к 2008-ой студии. ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510335</guid>
        <pubDate>Fri, 19 Feb 2010 20:16:25 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510335</link>
        <description><![CDATA[B.V.:  Это опечатка, а не зверь. Конечно, FeaturePack ]]></description>
        <author>B.V.</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510231</guid>
        <pubDate>Fri, 19 Feb 2010 18:31:41 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510231</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2510159'><b>Цитата</b></a> (B.V. &#064; 19.02.10, 17:08)<div class='QUOTE '>Читал, что FuturePack</div></div><br />
А это что за зверь? ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510159</guid>
        <pubDate>Fri, 19 Feb 2010 17:08:14 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2510159</link>
        <description><![CDATA[B.V.:  Читал, что FuturePack что-то там добавлял по C++ 0x в VC++ 2008. А не известно, будет ли какое-то дополнение или обновление для полной поддержки нового стандарта 2008-й студией? ]]></description>
        <author>B.V.</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2467282</guid>
        <pubDate>Fri, 08 Jan 2010 01:07:12 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2467282</link>
        <description><![CDATA[Masterkent:  Похоже, в C++0x наконец-то решили запретить неявное преобразование строкового литерала в указатель с потерей константности:<br />
<br />
<a href='http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#693' target='_blank'><span style='color:blue'><u>DR 693:</u></span></a><div><b>Цитата</b> <div class='QUOTE '><b>Notes from the July, 2009 meeting:</b><br />
<br />
The CWG reached consensus that the deprecated conversion should be removed altogether.<br />
<br />
<b>Proposed resolution (September, 2009):</b><br />
<br />
1. Remove 4.2 [conv.array] paragraph 2:<br />
<br />
<s><span class='movedprefix'>A string literal (2.14.5 [lex.string]) with no prefix, with a u prefix, with a U prefix, or with an L prefix can be converted to an rvalue of type “pointer to char”, “pointer to char16_t”, “pointer to char32_t”, or “pointer to wchar_t”, respectively. In any case, the result is a pointer to the first element of the array. This conversion is considered only when there is an explicit appropriate pointer target type, and not when there is a general need to convert from an lvalue to an rvalue. [Note: this conversion is deprecated. See Annex D [depr]. —end note] For the purpose of ranking in overload resolution (13.3.3.1.1 [over.ics.scs]), this conversion is considered an array-to-pointer conversion followed by a qualification conversion (4.4 [conv.qual]). [Example: &quot;abc&quot; is converted to “pointer to const char” as an array-to-pointer conversion, and then to “pointer to char” as a qualification conversion. —end example]</span></s><br />
<br />
[...]<br />
<br />
4. Change the discussion of 2.14.5 [lex.string] in C.1.1 [diff.lex] as follows:<br />
<br />
Change: String literals made const<br />
The type of a string literal is changed... “array of const wchar_t.”<br />
<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">char* p = &quot;abc&quot;; &nbsp; // valid in C, invalid in C++</div></ol></div></div></div></div></div></div><br />
Отмечу, однако, что запрет такого преобразования будет условный: стандарт позволяет и будет позволять компилятору иметь собственные расширения языка, и, в частности, компилятор сможет выполнять такое преобразование при условии, что без применения расширений программа по стандарту была бы ill-formed, и при этом он обязан будет выдавать диагностическое сообщение. ]]></description>
        <author>Masterkent</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2462143</guid>
        <pubDate>Tue, 29 Dec 2009 09:54:47 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2462143</link>
        <description><![CDATA[Большой:  <b>Flex Ferrum</b><br />
Пардон, это что-то я тупанул ]]></description>
        <author>Большой</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461635</guid>
        <pubDate>Mon, 28 Dec 2009 16:37:39 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461635</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2461629'><b>Цитата</b></a> (Большой &#064; 28.12.09, 16:27)<div class='QUOTE '>MyNameIsIgor<br />
так не пашет </div></div><br />
В смысле? ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461629</guid>
        <pubDate>Mon, 28 Dec 2009 16:27:51 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461629</link>
        <description><![CDATA[Большой:  <b>MyNameIsIgor</b><br />
так не пашет ]]></description>
        <author>Большой</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461563</guid>
        <pubDate>Mon, 28 Dec 2009 15:05:59 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461563</link>
        <description><![CDATA[MyNameIsIgor:  <b>Большой</b>, gcc? Тогда -std=c++0x ]]></description>
        <author>MyNameIsIgor</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461531</guid>
        <pubDate>Mon, 28 Dec 2009 14:35:09 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461531</link>
        <description><![CDATA[Большой:  ну copy_if например<br>я глянул вроде бы все есть, но не подключаются, я так думаю нужек ключ для компилятора ]]></description>
        <author>Большой</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461438</guid>
        <pubDate>Mon, 28 Dec 2009 12:46:27 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461438</link>
        <description><![CDATA[Flex Ferrum:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2461433'><b>Цитата</b></a> (Большой &#064; 28.12.09, 12:39)<div class='QUOTE '>подскажи пожалуйста как использовать алгоритмы С09 в gcc<br />
</div></div><br />
Какие именно? ]]></description>
        <author>Flex Ferrum</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461433</guid>
        <pubDate>Mon, 28 Dec 2009 12:39:50 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2461433</link>
        <description><![CDATA[Большой:  <b>Flex Ferrum</b><br />
подскажи пожалуйста как использовать алгоритмы С09 в gcc ]]></description>
        <author>Большой</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459844</guid>
        <pubDate>Fri, 25 Dec 2009 21:31:10 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459844</link>
        <description><![CDATA[Qraizer:  Нелогично - перегружать без достаточных на то оснований. Но ещё более нелогично запрещать их перегрузку. Тоже нет достаточных оснований. ]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459670</guid>
        <pubDate>Fri, 25 Dec 2009 16:54:50 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459670</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2459644'><b>Цитата</b></a> (Masterkent &#064; 25.12.09, 16:34)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2459523'><b>Цитата</b></a> (D_KEY &#064; 25.12.09, 14:28)<div class='QUOTE '>Еще разок. Поведение встроенных , &amp;&amp; || ?: сильно отличается от поведения остальных операторов, они представляют собой особые языковые формы. Их поведение нельзя имитировать другими языковыми средствами и при их перегрузке нельзя не исказить предусмотренной для них семантики.</div></div><br />
Несколько утверждений и ни одного логического следствия. Так рассуждения не строятся.</div></div><br />
Извини, не по стандарту.<br />
&quot;Следствия&quot; были ранее. Я в очередной раз пытался обосновать свои тезисы о нелогичности перегрузки этих операторов. Интересно, слово &quot;этих&quot; будет понятно? На всякий случай скажу, что под &quot;этими операторами&quot; понимаются &amp;&amp; || , ?:. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459523</guid>
        <pubDate>Fri, 25 Dec 2009 14:28:32 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459523</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458971'><b>Цитата</b></a> (Masterkent &#064; 24.12.09, 19:00)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458925'><b>Цитата</b></a> (D_KEY &#064; 24.12.09, 17:47)<div class='QUOTE '>Мы сейчас говорим о выражениях и встроенных операторах или где?</div></div><br />
Я ответил на конкретное предложение, где ничего не говорилось про выражения, но говорилось про операторы (без &quot;встроенные&quot;). Я не могу читать твои мысли, а могу только отвечать на то, что ты пишешь.</div></div><br />
Но сохранять контекст разговора все-таки неплохо бы научится.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>очевидно... тоже очевидно.</div></div><br />
Ну раз очевидно, тогда откуда высказывания о неуместности определений из математики?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Я вообще не понимаю твои рассуждения.</div></div><br />
Еще разок. Поведение встроенных , &amp;&amp; || ?: сильно отличается от поведения остальных операторов, они представляют собой особые языковые формы. Их поведение нельзя имитировать другими языковыми средствами и при их перегрузке нельзя не исказить предусмотренной для них семантики.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Скажу, что не вижу никаких доводов, почему отсутствие sequence point между вычислением аргументов операторной функции мешает перегрузке &amp;&amp;.</div></div>Потому, что нельзя создать перегрузку, которая будет сохранять семантику встроенной версии.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Здесь в полном соответствии со стандартом реализация имеет право вычислить f() во время выполнения программы</div></div><br />
Хм... Это несколько меняет дело... Правда в еще более худшую сторону. Неужели С++ настолько непредсказуем с точки зрения стандарта? ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459014</guid>
        <pubDate>Thu, 24 Dec 2009 20:10:41 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2459014</link>
        <description><![CDATA[Radagast:  <div><b>Цитата</b> <div class='QUOTE '>Здесь в полном соответствии со стандартом реализация имеет право вычислить f() во время выполнения программы</div></div><br />
эээ почему? о_О разве приведенная строка не подпадает под<br />
<div><b>Цитата</b> <div class='QUOTE '>Unlike &amp;, &amp;&amp; guarantees left-to-right evaluation: the second operand is not evaluated if the first operand is false.</div></div> ? ]]></description>
        <author>Radagast</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458925</guid>
        <pubDate>Thu, 24 Dec 2009 17:47:24 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458925</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458900'><b>Цитата</b></a> (Masterkent &#064; 24.12.09, 17:30)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458800'><b>Цитата</b></a> (D_KEY &#064; 24.12.09, 16:07)<div class='QUOTE '>Функция, оператор и операция - это, в общем случае, отображения одного множества в другое.</div></div><br />
Не в общем случае, а только в определённых разделах математики. В императивных языках программирования функции и операторы могут приводить к изменению состояния программы и не иметь результирующего значения.</div></div><br />
Мы сейчас говорим о выражениях и встроенных операторах или где?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Или, по-твоему, алгебраические определения - единственно верные и на них нужно молиться?</div></div><br />
Нет. Молиться на какие-либо определения не стоит. Ни на &quot;алгебраические&quot;, ни на указанные в стандартах. Но нужно понимать, откуда идут определенные понятия. И поскольку мы говорим о выражениях и элементарных операциях, то все мною сказанное остается корректным.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458800'><b>Цитата</b></a> (D_KEY &#064; 24.12.09, 16:07)<div class='QUOTE '>Мне кажется нелогично разрешать такую перегрузку.</div></div><br />
А мне так не кажется.<br />
</div></div><br />
Так что ты скажешь относительно sequence point?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458800'><b>Цитата</b></a> (D_KEY &#064; 24.12.09, 16:07)<div class='QUOTE '>Кроме того, logical AND он и есть logical AND, и смысла ни для каких значений, кроме bool&#39;ов, не имеет. </div></div><br />
Перегруженный оператор &amp;&amp; не обязан вычислять &quot;логическое И&quot;.</div></div>Как называется &amp;&amp; в стандарте?<br />
Но, конечно, не обязан. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458800</guid>
        <pubDate>Thu, 24 Dec 2009 16:07:46 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458800</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458179'><b>Цитата</b></a> (Masterkent &#064; 23.12.09, 22:22)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458071'><b>Цитата</b></a> (D_KEY &#064; 23.12.09, 20:00)<div class='QUOTE '>Математическая запись бинарной операции. </div></div><br />
Ты можешь внятно растолковать смысл фразы &quot;<i>это описание &quot;операции&quot; &amp;&amp; не соответствует bool * bool -&gt; bool</i>&quot;? Составить предложение из букв и прочих символов - не значит написать что-то осмысленное.</div></div><br />
Если ты не в состоянии что-либо понять, это вовсе не означает, что это что-либо не имеет смысла. Цитирование стандартов не всегда означает понимание лежащих в их основе концепций.<br />
Функция, оператор и операция - это, в общем случае, отображения одного множества в другое.<br />
Это понятие из математики, но оно справедливо и для программирования, пусть и с некоторыми оговорками для некоторых языков<br />
(в данном случае, поскольку мы говорим об элементарных операциях, эти оговорки можно не учитывать).<br />
Запись A -&gt; B обозначает отображение множества A в множество B, то есть соответствие каждому из элементов множества A определенному элементу из множества B. <br />
A*B обозначает пару элементов множеств A и B соответственно.<br />
bool * bool -&gt; bool – обозначает отображение(функцию, операцию, оператор), которое ставит в соответствие паре элементов из множества булевых значений элемент из множества булевых значений.<br />
Если в язык встроены ленивые вычисления, а побочных действие нет, то отказ от вычисления второго аргумента логического and абсолютно естественен и по-прежнему соответствует bool * bool -&gt; bool.<br />
Если же в язык ленивые вычисления не встроены, но язык предоставляет некоторую специальную языковую конструкцию, которая позволяет откладывать вычисления на тот момент, когда потребуется значение (в принципе, при наличии лямбда функций такая форма имеет очень простую реализацию(но требует или хорошо развитых макросов или введение специальной языковой формы)), то указанное обозначение продолжает иметь силу, правда с некоторыми оговорками. С++ же не имеет ни того, ни другого. Да и не в этом дело.<br />
В С++ операции и функции слишком часто используются для своих побочных эффектов, а не только для вычисления значения. Дело не только в &quot;the second operand is not evaluated if the first operand is ...&quot;, а в sequence point.<br />
<div><b>Цитата</b> <div class='QUOTE '>operators can be regrouped according to the usual mathematical rules only where the operators really<br />
are associative or commutative<br />
. . .<br />
Overloaded operators are never assumed to be associative or commutative<br />
</div></div><br />
<div><b>Цитата</b> <div class='QUOTE '>A full-expression is an expression that is not a subexpression of another expression<br />
…<br />
There is a sequence point at the completion of evaluation of each full-expression.<br />
</div></div><br />
Но для рассматриваемых операторов мы имеем:<br />
<div><b>Цитата</b> <div class='QUOTE '>In the evaluation of each of the expressions<br />
a &amp;&amp; b<br />
a || b<br />
a ? b : c<br />
a , b<br />
using the built-in meaning of the operators in these expressions (5.14, 5.15, 5.16, 5.18), there is a sequence point after the evaluation of the first expression.<br />
</div></div><br />
Это и есть то, что называется особой формой.<br />
Данные операции представляют собой специальные выражения, которые рассматриваются особым, отличным от предусмотренного для других выражений, образом.<br />
Но, выполняя перегрузку, мы, естественно, убираем эту sequence point:<br />
<div><b>Цитата</b> <div class='QUOTE '>When one of these operators is overloaded<br />
(clause 13) in a valid context, thus designating a user-defined operator function, the expression designates a function invocation,<br />
and the operands form an argument list, without an implied sequence point between them<br />
</div></div><br />
Мне кажется нелогично разрешать такую перегрузку.<br />
Кроме того, logical AND он и есть logical AND, и смысла ни для каких значений, кроме bool&#39;ов, не имеет. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458071</guid>
        <pubDate>Wed, 23 Dec 2009 20:00:22 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2458071</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458037'><b>Цитата</b></a> (Masterkent &#064; 23.12.09, 19:14)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456711'><b>Цитата</b></a> (D_KEY &#064; 22.12.09, 17:28)<div class='QUOTE '>Как написать такую функцию?</div></div><br />
При чём тут функции? <img src='http://forum.sources.ru/smiles/Main/wacko.gif' border='0' alt=':wacko:'></div></div><br />
Можно тогда, на всякий случай, определение функции?<br />
А там посмотрим. <br />
<br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2458037'><b>Цитата</b></a> (Masterkent &#064; 23.12.09, 19:14)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456711'><b>Цитата</b></a> (D_KEY &#064; 22.12.09, 17:28)<div class='QUOTE '>То, что это описание &quot;операции&quot; &amp;&amp; не соответствует bool * bool -&gt; bool</div></div><br />
Я не понимаю смысл такой формулировки.</div></div><br />
Математическая запись бинарной операции. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457254</guid>
        <pubDate>Wed, 23 Dec 2009 10:54:45 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457254</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2457102'><b>Цитата</b></a> (Qraizer &#064; 23.12.09, 02:20)<div class='QUOTE '>Это-то было понятно с самого начала. Непонятно, с чего бы это должно было быть причиной запрета на их перегрузку.</div></div><br />
Я не говорю, что нужно запретить. Я не понимаю, зачем было изначально разрешать. Обратной дороги уже нет. Как и со спецификациями исключений и многим другим...<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Возможность их перегрузки для пользовательских типов может быть полезна в ряде случаев.</div></div><br />
В каких?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Тот факт, что будучи перегруженными, эти операторы будут иметь семантику, отличную от их стандартных форм</div></div><br />
А я пытаюсь сказать, что встроенные версии вообще не являются операторами.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Я склонен считать, что наоборот, стандартные формы этих операторов имеют особенную семантику</div></div>Так и есть. Стандартные версии - особая языковая форма, а не оператор. Зачем понадобилось давать возможность &quot;пользователям&quot; создавать еще и оператор с таким же обозначением, как встроенная в язык особая форма - непонятно. Это все-равно, что разрешить перегружать макрос функцией.<br />
Можно разрешить добавлять оператор ; или оператор пробела или operator&quot;.<br />
А что? Просто &quot;стандартные формы этих операторов&quot; будут иметь &quot;особенную семантику&quot;. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457122</guid>
        <pubDate>Wed, 23 Dec 2009 03:58:20 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457122</link>
        <description><![CDATA[amdei:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2457102'><b>Цитата</b></a> (Qraizer &#064; 23.12.09, 02:20)<div class='QUOTE '>Я склонен считать, что наоборот, стандартные формы этих операторов имеют особенную семантику</div></div><br />
Тем более только для типа bool. ]]></description>
        <author>amdei</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457102</guid>
        <pubDate>Wed, 23 Dec 2009 02:20:30 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2457102</link>
        <description><![CDATA[Qraizer:  Это-то было понятно с самого начала. Непонятно, с чего бы это должно было быть причиной запрета на их перегрузку.<br>Возможность их перегрузки для пользовательских типов может быть полезна в ряде случаев. Тот факт, что будучи перегруженными, эти операторы будут иметь семантику, отличную от их стандартных форм, во-первых, несложно документируется, во-вторых, и без документирования вполне очевидна. Я склонен считать, что наоборот, стандартные формы этих операторов имеют особенную семантику, что и задокументировано Стандартом. ]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456721</guid>
        <pubDate>Tue, 22 Dec 2009 17:33:44 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456721</link>
        <description><![CDATA[sfinae:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456660'><b>Цитата</b></a> (Masterkent &#064; 22.12.09, 16:47)<div class='QUOTE '>Unlike &amp;, &amp;&amp; guarantees left-to-right evaluation: the second operand is not evaluated if the first operand is false.</div></div><br />
Вот собственно и описан предмет возмущения <b>D_KEY</b>. ]]></description>
        <author>sfinae</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456711</guid>
        <pubDate>Tue, 22 Dec 2009 17:28:26 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456711</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456660'><b>Цитата</b></a> (Masterkent &#064; 22.12.09, 16:47)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456555'><b>Цитата</b></a> (D_KEY &#064; 22.12.09, 15:39)<div class='QUOTE '>А можно определение операнда? </div></div><br />
В ISO/IEC 24765:2008 даётся такое определение:<br />
<div><b>Цитата</b> <div class='QUOTE '><b>operand.</b> a variable, constant, or function upon which an operation is to be performed</div></div></div></div><br />
И я о том.<br />
<div><b>Цитата</b> <div class='QUOTE '>Но в C++ операнды не ограничиваются только переменными, константами и функциями. Это могут любые выражения и даже типы.</div></div><br />
То есть операндом в С++ может являться непосредственно само выражение? Как написать такую функцию?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456555'><b>Цитата</b></a> (D_KEY &#064; 22.12.09, 15:39)<div class='QUOTE '>поскольку операнды вычисляются до выполнения операции</div></div><br />
Где такое правило сформулировано?</div></div><br />
То есть при вызове функций(или операторов) операнды не обязаны быть вычислены до вызова?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><b>Цитата</b> (ISO/IEC 24765:2008)<div class='QUOTE '><b>operation.</b> (1) in computer mathematics, the action specified by an operator on one or more operands; (2) in programming, a defined action that can be performed by a computer system</div></div><br />
К примеру, вот оно описание действия встроенного оператора &amp;&amp;:<br />
<br />
<div><b>Цитата</b> (5.14)<div class='QUOTE '>The operands are both implicitly converted to type bool (clause 4). The result is true if both operands are true and false otherwise. Unlike &amp;, &amp;&amp; guarantees left-to-right evaluation: the second operand is not evaluated if the first operand is false.<br />
<br />
The result is a bool. All side effects of the first expression except for destruction of temporaries (12.2) happen before the second expression is evaluated.</div></div><br />
Что тут не нравится?</div></div><br />
То, что это описание &quot;операции&quot; &amp;&amp; не соответствует bool * bool -&gt; bool(как должно быть согласно определению &quot;the action specified by an operator on one or more operands&quot;). Вообще, and может быть реализован, как операция над двумя операндами типа bool. Но встроенная версия себя так не ведет.<br />
Я не против встроенного поведения, я говорю о том, что перегрузка таких операторов отличается от прочих перегрузок тем, что встроенные версии данных операторов являются специальными языковыми формами, а не обычными операциями(и не могут быть ими заменены). А в результате перегрузки мы вводим именно операцию. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456555</guid>
        <pubDate>Tue, 22 Dec 2009 15:39:39 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456555</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2456030'><b>Цитата</b></a> (Masterkent &#064; 22.12.09, 01:24)<div class='QUOTE '>t + sizeof(t) тут не сгодится. Здесь можно было бы использовать boost::end:</div></div><br />
Извиняюсь <img src='http://forum.sources.ru/smiles/Main/blush.gif' border='0' alt=':blush:'> . Поторопился <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'> .<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Они вполне себе операторы. Операнды у них есть? Есть. Выражения они образуют? Образуют. Чего ещё надо?</div></div><br />
А можно определение операнда? Просто в контексте С++ у встроенных версий этих операторов операндов нет, поскольку операнды вычисляются до выполнения операции, а для этих операций это не так.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454223'><b>Цитата</b></a> (D_KEY &#064; 19.12.09, 23:17)<div class='QUOTE '>Их &quot;перегрузка&quot; является введением совершенно иной сущности(нового оператора), но с тем же обозначением.</div></div><br />
Вообще-то оператор - это и есть обозначение:<br />
<br />
<div><b>Цитата</b> (ISO/IEC 24765:2008 (Systems and software engineering — Vocabulary))<div class='QUOTE '><b>operator.</b> a mathematical or logical symbol that represents an action to be performed in an operation</div></div><br />
</div></div><br />
Правильно. Только встроенные версии рассматриваемых &quot;операторов&quot; не являются операциями(фактически ведут себя как выражения). Или я опять ошибаюсь?<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '><div><b>Цитата</b> <div class='QUOTE '>Но в С++ нельзя определять собственные операторы</div></div><br />
Нельзя вводить новые обозначения и менять приоритеты. Перегрузка операторов не вводит новых обозначений и приоритеты не меняет.<br />
</div></div><br />
А порядок вычислений менять и заставлять вычислять то, что встроенные версии не вычисляют, можно <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'> ? ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456367</guid>
        <pubDate>Tue, 22 Dec 2009 13:28:10 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456367</link>
        <description><![CDATA[archimed7592:  Если я не ошибаюсь, то их никуда не убирали. Они присутствуют в TR1, который, насколько я понимаю, полностью был включен в стандарт. Называются они unordered_xxx ]]></description>
        <author>archimed7592</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456356</guid>
        <pubDate>Tue, 22 Dec 2009 13:22:30 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2456356</link>
        <description><![CDATA[доцент:  Может кто-нибудь объяснить почему опять убрали хэш-контейнеры из нового стандарта. ]]></description>
        <author>доцент</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454505</guid>
        <pubDate>Sun, 20 Dec 2009 14:05:41 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454505</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454411'><b>Цитата</b></a> (GoldFinch &#064; 20.12.09, 12:07)<div class='QUOTE '><b>D_KEY</b>, точно также перегрузка &lt;&lt; для потоков меняет сущность оператора сдвига</div></div><br />
Не точно также. &lt;&lt; как был оператором, так им и остался, порядок вычисления и приоритет будет тем же. || &amp;&amp; , ?: - &quot;операторами&quot;, в принципе, не являются, поскольку управляют последовательностью вычислений. Это специальные языковые формы. <span style='color:gray'>Да, я знаю, что в стандарте они значатся, как операторы.</span><br />
Их &quot;перегрузка&quot; таковой не является, поскольку в этом случае ты вводишь уже &quot;настоящий&quot; оператор(в отличие от встроенных версий || &amp;&amp; , ?: ), который просто обозначается теми же символоми. Но это совершенно другая языковая конструкция. Ну не перегрузка это. <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 20.12.09, 14:07</span></span><br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454419'><b>Цитата</b></a> (kanes &#064; 20.12.09, 12:27)<div class='QUOTE '><b>GoldFinch</b>, сущность поменять можно, но не до абсурда, типа того что перегруженный &lt;&lt; на самом деле работает как &gt;&gt; или + работает как умножение</div></div><br />
Это так. Но я не о том <img src='http://forum.sources.ru/smiles/Main/smile.gif' border='0' alt=':)'> <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 20.12.09, 14:08</span></span><br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454460'><b>Цитата</b></a> (sfinae &#064; 20.12.09, 13:21)<div class='QUOTE '>Мне показалось что <b>D_KEY</b> делал упор не на изменение семантики самой операции, а на изменение семантики в контексте C++ (из-за изменения порядка выполнения).</div></div><br />
Ага, примерно так. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454460</guid>
        <pubDate>Sun, 20 Dec 2009 13:21:14 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454460</link>
        <description><![CDATA[sfinae:  Мне показалось что <b>D_KEY</b> делал упор не на изменение семантики самой операции, а на изменение семантики в контексте C++ (из-за изменения порядка выполнения).<br />
Например код (который пишут некоторые мои знакомые):<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">foo() &amp;&amp; bar();</div></ol></div></div></div></div><br />
По сути эквивалентен<br />
<div class='pre_code'><div class='CODE  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if(foo())bar();</div></ol></div></div></div></div><br />
и <b>гарантирует</b> что bar будет вызван только в случае успешного выполнения foo().<br />
А если для возвращаемого значения bar() перегрузить оператор &amp;&amp;, то эти функции уже могут быть вызваны в любом порядке, и уже к результату применен оператор &amp;&amp;. А это уже не так безобидно как умножать по значку &quot;+&quot;. ]]></description>
        <author>sfinae</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454419</guid>
        <pubDate>Sun, 20 Dec 2009 12:27:25 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454419</link>
        <description><![CDATA[kanes:  <b>GoldFinch</b>, сущность поменять можно, но не до абсурда, типа того что перегруженный &lt;&lt; на самом деле работает как &gt;&gt; или + работает как умножение ]]></description>
        <author>kanes</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454411</guid>
        <pubDate>Sun, 20 Dec 2009 12:07:57 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454411</link>
        <description><![CDATA[GoldFinch:  <b>D_KEY</b>, точно также перегрузка &lt;&lt; для потоков меняет сущность оператора сдвига, <br />
а также перегрузка % в boost.format, перегрузка &amp; в boost.serialization, и еще куча перегрузок меняющих семантику операторов. ]]></description>
        <author>GoldFinch</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454223</guid>
        <pubDate>Sat, 19 Dec 2009 23:17:01 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454223</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454216'><b>Цитата</b></a> (GoldFinch &#064; 19.12.09, 22:59)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454185'><b>Цитата</b></a> (D_KEY &#064; 19.12.09, 21:53)<div class='QUOTE '>Перегрузим ;?</div></div><br />
говорили уже, что ; - не оператор. пробел перегрузи.</div></div><br />
Так и я о том. Перегружать , также глупо. <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 19.12.09, 23:27</span></span><br />
<b>GoldFinch</b>, ты просто рассматриваешь С++ как некую данность, я же хочу понять почему(и зачем) он такой. Пару лет назад, такие книги, как D&amp;E, давали мне нужные ответы, но теперь мне этого недостаточно.<br />
Но тут это все-таки не совсем в тему <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'> <br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 19.12.09, 23:47</span></span><br />
Разве можно сказать, что перегрузка , || &amp;&amp; вообще является таковой? Их встроенные версии не являются простыми операторами(они вообще по сути своей не являются операторами, хотя и носят такое название), это специальные языковые формы и их нельзя имитировать другими средствами языка. Их &quot;перегрузка&quot; является введением совершенно <b>иной</b> сущности(нового оператора), но с тем же обозначением. Но в С++ нельзя определять собственные операторы, соответственно, даже с этой стороны, такие перегрузки противоречат идеологии языка... ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454216</guid>
        <pubDate>Sat, 19 Dec 2009 22:59:05 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454216</link>
        <description><![CDATA[GoldFinch:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2454185'><b>Цитата</b></a> (D_KEY &#064; 19.12.09, 21:53)<div class='QUOTE '>Перегрузим ;?</div></div><br />
говорили уже, что ; - не оператор. пробел перегрузи. ]]></description>
        <author>GoldFinch</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454185</guid>
        <pubDate>Sat, 19 Dec 2009 21:53:06 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2454185</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2453509'><b>Цитата</b></a> (Qraizer &#064; 18.12.09, 20:10)<div class='QUOTE '><b>D_KEY</b>, нельзя заставлять поступать так-то и так-то исключительно из религиозных соображений.</div></div><br />
Это не религиозные убеждения. Перегрузим ;?<br />
Если бы в С++ был способ перегрузить эти операторы и сохранить порядок вычислений, то я бы не был против такой перегрузки.<br />
<br />
<div><b>Цитата</b> <div class='QUOTE '>Тогда уж надо запретить перегружать + как умножение, префиксный ++ как постфиксный итп.</div></div><br />
Во-первых, это невозможно. Во-вторых, перегрузка этих операторов не оказывает влияние на порядок выполнения.<br />
<br />
<span style='color:gray'><span style='font-size:7pt;line-height:100%'>Добавлено 19.12.09, 21:55</span></span><br />
<div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2453511'><b>Цитата</b></a> (kanes &#064; 18.12.09, 20:16)<div class='QUOTE '><div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2452735'><b>Цитата</b></a> (D_KEY &#064; 18.12.09, 09:31)<div class='QUOTE '>Так вот и незачем перегружать операторы, которые семантически нельзя представить в виде функций.</div></div><br />
Кстати где-то видел такую рекомендацию: перегрузку операторов делать так: написать функцию, которая выполняет тоже самое, что и перегружаемый оператор, потом внутри перегрузки использовать эту функцию, честно говоря, не очень понимаю смысла сей рекомендации</div></div><br />
Возможно это касалось виртуальных методов. Вроде перегрузки оператора вывода(то есть сдвига <img src='http://forum.sources.ru/smiles/Main/wink.gif' border='0' alt=';)'>). Обычно пишется отдельный виртуальный метод, а оператор переопределяется для ссылки на базовый класс. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2453511</guid>
        <pubDate>Fri, 18 Dec 2009 20:16:12 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2453511</link>
        <description><![CDATA[kanes:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2452735'><b>Цитата</b></a> (D_KEY &#064; 18.12.09, 09:31)<div class='QUOTE '>Так вот и незачем перегружать операторы, которые семантически нельзя представить в виде функций.</div></div><br />
Кстати где-то видел такую рекомендацию: перегрузку операторов делать так: написать функцию, которая выполняет тоже самое, что и перегружаемый оператор, потом внутри перегрузки использовать эту функцию, честно говоря, не очень понимаю смысла сей рекомендации ]]></description>
        <author>kanes</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2453509</guid>
        <pubDate>Fri, 18 Dec 2009 20:10:58 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2453509</link>
        <description><![CDATA[Qraizer:  <b>D_KEY</b>, нельзя заставлять поступать так-то и так-то исключительно из религиозных соображений. Тогда уж надо запретить перегружать + как умножение, префиксный ++ как постфиксный итп. Это было бы полезнее. Формальных же препятствий к перегрузке этих операций нет. ]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452735</guid>
        <pubDate>Fri, 18 Dec 2009 09:31:15 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452735</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2452673'><b>Цитата</b></a> (amk &#064; 18.12.09, 04:35)<div class='QUOTE '>Да, это проблема. Если бы можно было отложить вычисление параметров до того момента, когда они действительно понадобятся. Но в C++ такой возможности нет - это не Алгол.</div></div><br />
Так вот и незачем перегружать операторы, которые семантически нельзя представить в виде функций. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452729</guid>
        <pubDate>Fri, 18 Dec 2009 09:20:54 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452729</link>
        <description><![CDATA[GoldFinch:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2452673'><b>Цитата</b></a> (amk &#064; 18.12.09, 04:35)<div class='QUOTE '>Если бы можно было отложить вычисление параметров до того момента, когда они действительно понадобятся.</div></div><br />
ленивые вычисления вполне реализуемы, правда вместо foo(x) будет чтото вроде bind(foo,x) ]]></description>
        <author>GoldFinch</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452673</guid>
        <pubDate>Fri, 18 Dec 2009 04:35:56 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452673</link>
        <description><![CDATA[amk:  Да, это проблема. Если бы можно было отложить вычисление параметров до того момента, когда они действительно понадобятся. Но в C++ такой возможности нет - это не Алгол. ]]></description>
        <author>amk</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452668</guid>
        <pubDate>Fri, 18 Dec 2009 02:38:48 +0300</pubDate>
        <title>Новый стандарт C++: C++09</title>
        <link>http://forum.sources.ru/index.php?showtopic=190375&amp;view=findpost&amp;p=2452668</link>
        <description><![CDATA[D_KEY:  <div><a href='http://forum.sources.ru/index.php?showtopic=190375&view=findpost&p=2452666'><b>Цитата</b></a> (amk &#064; 18.12.09, 02:33)<div class='QUOTE '>Просто для ||, &amp;&amp; и , нет такого устойчивого стереотипа, что они означают</div></div><br />
Дело не только в значении, дело в поведении и порядке вычислений.<br />
Так, например, встроенный || <b>не вычисляет</b> второй аргумент, если первый - true, кроме того, первый аргумент всегда вычисляется до второго. А если мы перегружаем ||, то вычислены будут оба аргумента, причем в неизвестном порядке. ]]></description>
        <author>D_KEY</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	