Здравствуйте, ·, Вы писали:
·>А то внезапно у тебя не получится сделать std::vector<MyType> и придётся лепить std::vectior<some_smart_pointer<MyType>> и прочее.
Может придётся, а может и нет, и по-умолчанию скорее нет чем да. В Java же эта индерекция будет
всегда, не считая варианты с байт-буферами и прочим ручным нарезанием.
EP>>>> Собственно поэтому и извращаются на байт-буферах чтобы эти самые косвенности пересилить
N>>>Да. Или на структурах, в дотнете. И будут точно так же на структурах в Java 9.
EP>>О, в Java наконец появятся структуры?
·>О java 9 он вроде поторопился, фичефриз уже прошел, релизят через пол года (но пробовать можно уже сейчас), но есть планы в 10ке https://en.wikipedia.org/wiki/Project_Valhalla_(Java_language) через года полтора-два.
Во-во, а ты спрашивал что за косвености(индерекции), вот же они:
Memory access performance and the efficiency of 'boxed' value access are a major area to be addressed by these features. 'Value Type' features and 'Generic specialization' (when applied to lists or collections) reduce memory usage, but more importantly avoid pointer indirection which typically causes a cache miss.[3][4]
Instead of a list or array of object references, pointing to data values scattered throughout memory, Project Valhalla enhancements will enable list or array values to potentially be laid out linearly—without indirection—as a consecutive block of memory.
·>В общем .net должен бежать ещё быстрее, чтоб окончательно не отстать по своим фичам.
Как язык C# по фичам давно обогнал Java.