Re[3]: unsafe generics
От: LastExile Украина  
Дата: 21.02.12 21:29
Оценка: 20 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, nikov, Вы писали:


А>>> С любой структурой можно сделать fixed, указатели, арифметику.

N>>Не с любой, только с unmanaged.

А>Так в чем же суть этих ограничений?


unmanaged структура должна состоять только из


Соответственно, ограничение where T: struct, не дает гарантии, что T: unsafe struct
Что касается причины такого ограничения, то она тоже приведена в спецификации


[ш]
Unlike references (values of reference types), pointers are not tracked by the garbage collector—the garbage collector has no knowledge of pointers and the data to which they point. For this reason a pointer is not permitted to point to a reference or to a struct that contains references, and the referent type of a pointer must be an unmanaged-type.
[/ш]
Re: unsafe generics
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.02.12 18:11
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А> С любой структурой можно сделать fixed, указатели, арифметику.

Не с любой, только с unmanaged.
unsafe generics
От: Аноним  
Дата: 21.02.12 18:09
Оценка:
C# почему-то не умеет, даже если указывать where T : struct. Проблема уже решена другим путём, а вот вопрос — почему не умеет — остался. С любой структурой можно сделать fixed, указатели, арифметику. А с генерик структурой нельзя...
Re[2]: unsafe generics
От: Аноним  
Дата: 21.02.12 20:00
Оценка:
Здравствуйте, nikov, Вы писали:

А>> С любой структурой можно сделать fixed, указатели, арифметику.

N>Не с любой, только с unmanaged.

Так в чем же суть этих ограничений?
Re[4]: unsafe generics
От: LastExile Украина  
Дата: 21.02.12 21:31
Оценка:
Раздел спецификации
18.2 Pointer types
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.