Математика в шаблонных классах
есть универсальный класс
Код:
Class1<AxisType> where AxisType:ValueType Но компилятор ругается, что нельзя, например, делить AxisType на int (this.x / 2, например) Как ему объяснить, что для AxisType будут использоваться int,double,float и вообще численные типы? |
Ответ: Математика в шаблонных классах
Проблема в том, что не у всех численных типов есть операторы деления. А явно указать нужные численные типы не выйдет.
|
Ответ: Математика в шаблонных классах
Цитата:
|
Ответ: Математика в шаблонных классах
по идее шарповские дженерики при объявлении экземпляра от определённого типа должны же сказать компилятору, что вот у этого экземпляра axisType - int, разве не?
или тебе это для метода нужно? Мне доводилось писать уродливую и мрачную конструкцию с монструозными if-ами с typeof() внутри. Может прокатит. |
Ответ: Математика в шаблонных классах
Тут проблема в том, что создавая метод для оператора как параметр указываешь шаблонный тип, а этот шаблонный тип может и не иметь нужного оператора. ValueType это не только int/float/double/long.
|
Ответ: Математика в шаблонных классах
Цитата:
ValueType - это было моё кривоногое предположение, я понимаю, что не все они имеют мат.операторы. Просто этот тип было бы очень удобно использовать с различными AxisType - а их всего-то 3: int,float да double. |
Ответ: Математика в шаблонных классах
Я думаю тебе надо реализовать основной функционал так как задумал, а потом сделать несколько частных случаев и реализовать им операторы (можно скопипастить)
PHP код:
|
Часовой пояс GMT +4, время: 05:57. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot