Что происходит, если я бросил вдвое большее по сравнению с интервалом, но значение двойного вне диапазона?

Больше функции во время выполнения, но я недавно узнал, что существует два сборщика "мусора". Gc рабочей станции и рабочая станция gc сервера являются значением по умолчанию на версиях клиента окон, но сервер намного быстрее на многоядерных машинах.


<configuration>
   <runtime>
      <gcServer enabled="true"/>
   </runtime>
</configuration>

Быть осторожным. Gc сервера требует большей памяти.

5
задан Roland Rabien 21 July 2009 в 21:35
поделиться

2 ответа

Точно. Цитата из стандарта 4.9: «Поведение не определено, если усеченное значение не может быть представлено в типе назначения».

19
ответ дан 18 December 2019 в 06:51
поделиться

Дэвид Торнли уже полностью ответил на этот вопрос. Однако, чтобы справиться с этой ситуацией в вашем коде, вы должны рассмотреть boost numeric_cast .

double d = double(INT_MIN) - 10000.0;
int a = boost::numeric_cast<int>(d);

Это вызовет исключение во время выполнения, если d слишком велик для int ].

4
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: