Каков самый умный способ реализации фиксированного размера в векторе D, который совместим с RandomAccessRange
interface в Phobos? Должен ли я переопределить всех членов opIndex
, length
и т. Д. Или это более умный путь через делегирование, псевдоним этого или шаблона mixins? Я рассматривал пару векторных структур фиксированного размера для проектов github D, но ни один из них не заботится о том, чтобы быть совместимым с диапазонами Phobos. Обновление: Только что прочитано, что контейнеры должны быть ссылочными типами, поэтому я думаю, что это не способ сделать это в D правильно?Фобос-диапазон Совместимый фиксированный вектор
2
A
ответ
2
Если вектор имеет непрерывную внутреннюю память, то вы можете просто вернуть кусочек, что данные из opSlice()
:
struct Vector
{
private real[4] data;
auto opSlice() { return data[]; }
}
Контейнеры не должны быть ссылочные типы, но в любом случае с помощью opSlice
является обычным способом для получения диапазона из контейнера.
Смежные вопросы
- 1. Фиксированный фиксированный заголовок
- 2. Классический ASP-совместимый SCORM-совместимый LMS
- 3. векторный векторный фиксированный размер
- 4. Совместимый сортировщик
- 5. Прокручиваемый стол, фиксированный заголовок фиксированный
- 6. Фиксированный боковой стол перекрывает фиксированный заголовок
- 7. Сравнить фиксированный размер векторов
- 8. CSS: фиксированный
- 9. watchOS 2 совместимый iOS
- 10. Совместимый с первым низом
- 11. MSSCCI-совместимый git-клиент
- 12. HTML5-совместимый html-страница
- 13. Совместимый с datetimepicker
- 14. Совместимый с потоком AtomicInteger
- 15. Regex - Совместимый персонаж Anywhere
- 16. MSSCCI-совместимый клиент Mercurial
- 17. Совместимый trimRows работает некорректно
- 18. Найти совместимый сокет
- 19. опрос/Epoll совместимый таймер
- 20. KVC совместимый сеттер?
- 21. Обратный совместимый PageTransformer
- 22. Совместимый фон для UITableViewCell
- 23. NSDictionary кодирования-совместимый
- 24. Цвет, совместимый с проектором
- 25. Браузер-совместимый карусель
- 26. Раздел 508 совместимый Gridview
- 27. Совместимый пользовательский заголовок
- 28. создание сайта iphone совместимый
- 29. Совместимый сценарий развертывания
- 30. есть Tomcat задний совместимый?
Соглашение в std.container заключается в том, что 'opSlice() 'используется для получения диапазона, по которому вы можете выполнять итерацию, какой тип диапазона зависит от вас –