Техника симуляции
Техника симуляции
Естественным первым шагом будет вынести различающуюся функциональность Matrix‹› в два базовых класса: Matrix_‹›, реализующий общий случай, и Matrix_float_‹› для специфики Matrix‹float,…›.
template‹class T, int Rows, int Columns›
class Matrix_ {
//…
};
template‹int Rows, int Columns› class Matrix_float_ {
//…
};
Таким образом, проблема сведется к тому, чтобы класс Matrix‹T, Rows, Columns› наследовался от Matrix_‹T, Rows, Columns› или Matrix_float_‹Rows, Columns›, в зависимости от того, является ли параметр T шаблона Matrix‹› типом float. Решение этой задачи и является главным «фокусом» данной техники.
Несмотря на отсутствие поддержки частичной специализации, компилятор позволяет специализировать шаблоны полностью. Этот факт можно использовать для построения вложенных шаблонов с полной специализацией и выбором подходящего базового класса на соответствующем уровне вложенности.
template‹class T›
struct MatrixTraits {
template‹int Rows, int Columns›
struct Dimensions {
typedef Matrix_‹T, Rows, Columns› Base;
};
};
template‹›
struct MatrixTraits‹float› {
template‹int Rows, int Columns›
struct Dimensions {
typedef Matrix_float_‹Rows, Columns› Base;
};
};
Теперь осталось просто унаследовать Matrix‹› от соответствующего класса MatrixTraits‹›::…::Base.
template‹class T, int Rows, int Columns›
class Matrix: public MatrixTraits‹T›::template Dimensions‹Rows, Columns›::Base {
//…
};
ПРИМЕЧАНИЕ Согласно текущей версии стандарта, использование ключевого слова template при квалификации вложенного шаблона Dimensions в данном случае обязательно, хотя некоторые компиляторы и позволяют его опускать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
4.3. Техника CSS Sprites
4.3. Техника CSS Sprites Рассмотрев все аспекты объединения текстовых файлов, перейдем к графической и мультимедийной информации. Сейчас уже много где написано и упомянуто про технику CSS Sprites (или CSS Image Maps). Ниже приведены несколько примеров и полезных ссылок. И пара советов, где
Приложение В Техника отладки
Приложение В Техника отладки Это приложение содержит некоторые рекомендации и описание методов отладки сетевых приложений. Ни один из приведенных методов не является панацеей от всех возможных проблем, однако существует множество инструментальных средств, с которыми
Использование модификатора Cloth (Ткань) для симуляции поведения тканей
Использование модификатора Cloth (Ткань) для симуляции поведения тканей Рассмотрим работу с модификатором Cloth (Ткань). В отличие от одноименного оператора модуля reactor этот модификатор в первую очередь призван облегчить создание и анимацию одежды моделируемых персонажей.
19.3.1. Принципы и техника
19.3.1. Принципы и техника Каркас Rails построен на основе паттерна Модель-Вид-Контроллер (Model-View-Controller — MVC). Каждое приложение естественно разбивается на модели (моделирующие предметную область), виды (с помощью которых информация представляется пользователю и организуется
Техника
Техника Техника извлечения и манипулирования данными выходного набора использует курсор для чтения по порядку каждой строки из оператора SELECT В предварительно объявленный набор переменных. Часто это могут быть выходные аргументы, куда помещаются значения столбцов,
Глава 7 Техника для съемки
Глава 7 Техника для съемки Это одна из тех глав, в которой философского текста будет больше, чем картинок и диалогов. Все потому, что вопрос о технике для съемки всегда был наиболее щекотливым. Перед тем как решительно идти в магазин с вырванным из книги кратким списком
Глава 5 Техника съемки
Глава 5 Техника съемки 5.1. Главный секрет – избегать типичных ошибок5.2. Учимся двухмерному видению5.3. Композиция кадра5.4. Кадрирование5.5. Освещение5.6. Правильное использование вспышки5.7. Съемка движения5.8. Макросъемка5.9. Фотографа без штатива не бываетИ любительская
Лекция 16. Техника наследования
Лекция 16. Техника наследования Наследование - ключевая составляющая ОО-подхода к повторному использованию и расширяемости. В этой лекции нам предстоит исследовать новые возможности, разнородные, но демонстрирующие замечательные следствия красоты базисных идей.
Глава 6. Техника безопасности
Кибернетическая техника
Кибернетическая техника В 1969 году Б. Н. Малиновский был избран членом-корреспондентом Академии наук Украинской ССР. В 1971 году после ухода Г. Е. Пухова он возглавил Отделение кибернетической техники Института. Отделение занималось разработкой вычислительных средств, их
Техника
Техника Специально покупать новую фотокамеру для первых опытов в съемке натюрморта вряд ли стоит — вполне подойдет то, что у вас есть. Хорошая техника не спасет неудачную композицию. Главное в данном случае — не фотокамера, хотя конечно, высококачественное оборудование
Техника съемки
Техника съемки В макросъемке трудно с первой попытки получить превосходный результат. Если для остальных видов съемки обычно достаточно одного-двух дублей, то для макро потребуется сделать больше снимков. Хорошо, если отличным получится один из пяти или десяти
Техника макросъемки
Техника макросъемки Сюжетов для съемки макро всегда хватает с избытком, при этом снимки не похожи друг на друга. Подходящие для съемки объекты вы можете найти повсюду. Важно научиться смотреть на объекты внимательным взглядом (как смотрят на новые игрушки маленькие