<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3264327</guid>
        <pubDate>Tue, 22 Jan 2013 20:41:36 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3264327</link>
        <description><![CDATA[Qraizer: А что там верного, если не секрет? По-моему, компилиться должно. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-01-23T00:47:36+04:00">22.01.13, 20:47</time></span></span><br>
А, ну да, если ещё прочитать 8.3.4 Arrays пункт 1, то понятно.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3264114</guid>
        <pubDate>Tue, 22 Jan 2013 11:50:52 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3264114</link>
        <description><![CDATA[grgdvo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=370816&view=findpost&p=3261587'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2013-01-15T13:12:19+00:00">15.01.13, 13:12</time></span><div class='quote '>И эта... попробуй добавить static к переменной hstep.</div></div><br>
Та же ошибка&#33; Трактую положительно, как верное следование стандарту в части пункта 5.19 абзац 2 (C++2003).<br>
<br>
Все таки стандарт мутно написан, три дня потребовалось, чтобы уложилось&#33;<br>
хотя, ИМХО, для тех кто читает его только &quot;раз-в-году&quot; - нормальная реакция.]]></description>
        <author>grgdvo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3263144</guid>
        <pubDate>Sun, 20 Jan 2013 07:27:49 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3263144</link>
        <description><![CDATA[grgdvo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=370816&view=findpost&p=3261391'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>leo &#064; <time class="tag-quote__quoted-time" datetime="2013-01-15T06:42:59+00:00">15.01.13, 06:42</time></span><div class='quote '>Глянь строчкой выше, п.4 и далее п.10 EXAMPLE 4</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=370816&view=findpost&p=3261587'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2013-01-15T13:12:19+00:00">15.01.13, 13:12</time></span><div class='quote '>По теме - С++03, раздел 5.19 Constant expressions, пункты 1-3. </div></div><br>
Парни, спасибо&#33;<br>
Тема закрыта]]></description>
        <author>grgdvo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261602</guid>
        <pubDate>Tue, 15 Jan 2013 13:39:02 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261602</link>
        <description><![CDATA[Алексей_Л: В LWS (GCC 4.7.2) код успешно собирается при -std=c++11, а вот при -std=c++03 появляется описанная ошибка.]]></description>
        <author>Алексей_Л</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261587</guid>
        <pubDate>Tue, 15 Jan 2013 13:12:19 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261587</link>
        <description><![CDATA[Qraizer: Вообще, я бы не советовал связываться с плавающей точкой в подобных вот случаях. Погрешность вычисления, даже и в компайл-тайм, может привести к тому, что размер массива будет отличаться на 1 от задуманного , а это уже довольно далеко от стандартных ошибок округления для double, не правда ли?<br>
По теме - С++03, раздел 5.19 Constant expressions, пункты 1-3. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-01-15T13:19:06+00:00">15.01.13, 13:19</time></span></span><br>
И эта... попробуй добавить static к переменной hstep.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261501</guid>
        <pubDate>Tue, 15 Jan 2013 10:38:35 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261501</link>
        <description><![CDATA[grgdvo: 2leo:<br>спасибо за наводки, надо их переварить и еще раз перечитать и подумать.<br><br>2NeoApostol:<br>А что у тебя за компилятор?<br>Не уже ли я напоролся на какое-то undefined behaviour, которое каждым разработчиком компилятора понимается по своему.]]></description>
        <author>grgdvo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261391</guid>
        <pubDate>Tue, 15 Jan 2013 06:42:59 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261391</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=370816&view=findpost&p=3261354'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>NeoApostol &#064; <time class="tag-quote__quoted-time" datetime="2013-01-14T23:53:11+00:00">14.01.13, 23:53</time></span><div class='quote '>Читаю ISO 9899:1999 (он же C99), пока нашел только похожий пункт в разделе Array declarators (6.7.5.2 пункт 5),...<br>
Скажите, какое семантическое правило я упускаю?</div></div><br>
Глянь строчкой выше, п.4<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>If the size is an <span class='tag-u'>integer constant expression</span> and the element type has a known constant size, the array type is not a variable length array type; otherwise, the array type is a <span class='tag-u'>variable length array </span>type.</div></div><br>
и далее п.10 EXAMPLE 4<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Array objects declared with the <strong class='tag-b'>static</strong> or <strong class='tag-b'>extern</strong> storage-class specifier <span class='tag-u'>cannot have a variable length array (VLA)</span> type.</div></div><br>
Что есть Integer constant expression см.6.6 Constant expressions, п.6]]></description>
        <author>leo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261359</guid>
        <pubDate>Tue, 15 Jan 2013 02:31:38 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261359</link>
        <description><![CDATA[NeoApostol: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=370816&view=findpost&p=3261357'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>chooch &#064; <time class="tag-quote__quoted-time" datetime="2013-01-15T01:14:35+00:00">15.01.13, 01:14</time></span><div class='quote '>должна использоваться целочисельная константа</div></div><br>
а у него разве она не константа?]]></description>
        <author>NeoApostol</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261357</guid>
        <pubDate>Tue, 15 Jan 2013 01:14:35 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261357</link>
        <description><![CDATA[chooch: Для указания размера массива должна использоваться целочисельная константа, а не переменная, т.к. размер должен быть известен на этапе компиляции.<br>
Можеш, как сказал <strong class='tag-b'>Бублик</strong>, использовать define]]></description>
        <author>chooch</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261356</guid>
        <pubDate>Tue, 15 Jan 2013 00:41:49 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261356</link>
        <description><![CDATA[Бублик: #define maxh 1000]]></description>
        <author>Бублик</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261354</guid>
        <pubDate>Mon, 14 Jan 2013 23:53:11 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261354</link>
        <description><![CDATA[NeoApostol: Может ты что упустил?<br>а твой код у мну компилится]]></description>
        <author>NeoApostol</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261350</guid>
        <pubDate>Mon, 14 Jan 2013 22:55:37 +0000</pubDate>
        <title>Объявление массива, размер которого приводится из вещественного числа к целому</title>
        <link>https://forum.sources.ru/index.php?showtopic=370816&amp;view=findpost&amp;p=3261350</link>
        <description><![CDATA[grgdvo: Всем добрый день&#33;<br>
Формальная часть: gcc версия 4.5.4 (Gentoo 4.5.4 p1.1, pie-0.4.7)<br>
<br>
Самая краткая выдержка из некой вычислительной программы<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">const double hstep = 2.5e-2;</div><div class="code_line">#define HSTEP 2.5e-2</div><div class="code_line">&nbsp;</div><div class="code_line">const unsigned int maxh = (unsigned int)(1 / hstep) + 3;</div><div class="code_line">const unsigned int MAXH = (unsigned int)(1 / HSTEP) + 3;</div><div class="code_line">&nbsp;</div><div class="code_line">double f[maxh]; &nbsp; &nbsp; &nbsp; &nbsp; // &#60;-- ERROR here</div><div class="code_line">double F[MAXH]; &nbsp; &nbsp; &nbsp; &nbsp; // OK!</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc, char *argv[]) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;double f[maxh]; &nbsp; &nbsp;// OK too!!! ===8-000</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Почему получаю ошибку: tmp.cpp:7:14: ошибка: array bound is not an integer constant before ‘]’ token  ??<br>
При этом через препроцессор все приводится к целому типу нормально, более того в контексте функции все объявляется. Что не так с глобальным контекстом?<br>
<br>
Может быть знатоки ткнут носом в стандарт?&#33; Читаю ISO 9899:1999 (он же C99), пока нашел только похожий пункт в разделе Array declarators (6.7.5.2 пункт 5),<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">If the size is an expression that is not an integer constant expression: if it occurs in a<br>
declaration at function prototype scope, it is treated as if it were replaced by *; otherwise,<br>
each time it is evaluated it shall have a value greater than zero.</div></div><br>
но он не объясняет причины появления ошибки. Скажите, какое семантическое правило я упускаю? Заранее спасибо.]]></description>
        <author>grgdvo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	