История изменений
Исправление DarkEld3r, (текущая версия) :
нужно предпочитать передаче по значению передачу константного объекта по ссылке
Ссылка занимает 4/8 байт. Поэтому большие объекты выгоднее передавать именно по ссылке. Примитивные типы и так занимают немного, так что разницы нет. Плюс теоретически будет лишняя косвенность. Подозреваю, что это всё равно оптимизируется, но так обычно не пишут.
а как тогда код похожий на мой первый вариант (в начале темы) работал в Си++98?
Для реализации enable_if не нужно ничего из С++11, то есть эта функция штука быть (и была) реализована и раньше, просто была не стандартной.
Если очень интересно - посмотри на старые исходники стл, но подозреваю, что там будет самопальный аналог.
шаблоны могут использоваться не только при определении функций и классов, но и просто в выражениях?
Кстати, что это значит?
Deque<int> test1(25, -1);
Исходная версия DarkEld3r, :
нужно предпочитать передаче по значению передачу константного объекта по ссылке
Ссылка занимает 4/8 байт. Поэтому большие объекты выгоднее передавать именно по ссылке. Примитивные типы и так занимают немного, так что разницы нет. Плюс теоретически будет лишняя косвенность. Подозреваю, что это всё равно оптимизируется, но так обычно не пишут.
а как тогда код похожий на мой первый вариант (в начале темы) работал в Си++98?
Для реализации enable_if не нужно ничего из С++11, то есть эта функция штука быть (и была) реализована и раньше, просто была не стандартной.
Если очень интересно - посмотри на старые исходники стл, но подозреваю, что там будет самопальный аналог.