Вы проверили, успешно ли работает код ?? должно быть int& i = r_c<int&>(f) - personUltraInstinct  schedule01.01.2010
comment
На самом деле это не переводится ни на один язык. Он интерпретирует биты с плавающей запятой как int!!! Что это обозначает? Поскольку представление с плавающей запятой не определено стандартом, оно имеет смысл только в том случае, если вы понимаете, какое представление с плавающей запятой используется вашим компилятором/аппаратным обеспечением, и знаете, что это соответствует представлению с плавающей запятой Java.
- personMartin York  schedule01.01.2010
comment
В дополнение к тому, что сказал Мартин Йорк, технически выполняется определяемое реализацией сопоставление от ссылки с плавающей запятой к ссылке int. Строго говоря, нет никакой гарантии, что результирующая ссылка int будет псевдонимом того же объекта.
- personjalf  schedule01.01.2010
Из любопытства, в чем разница между тем, что вы опубликовали, и int i = (int)f;?
- personAlberto Zaccagni; 01.01.2010
comment
@Montecristo: (int) f в Java похож на static_cast‹int›(f) в C++.
- personmissingfaktor; 01.01.2010
comment
Хорошо... поэтому я думаю, что мне придется поискать эти два метода С++, чтобы получить полную картину, спасибо :)
- personAlberto Zaccagni; 01.01.2010
comment
@Montecristo: это операторы приведения, а не методы.
- personmissingfaktor; 01.01.2010
comment
Обратите внимание, что версия C++ использует ссылку int. Таким образом, изменение float приведет к изменению int (неопределенным образом). Версия Java не предоставляет такой функциональности. За каждым изменением 'f' должен следовать вызов floatToIntBits().
- personMartin York; 01.01.2010
int& i = r_c<int&>(f)
- person UltraInstinct   schedule 01.01.2010