Форум программистов, компьютерный форум CyberForum.ru

templates, STL - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача со звездочками http://www.cyberforum.ru/cpp-beginners/thread973689.html
Пользователь вводит число, а компьютер должен вывести на экран пирамидку, с такой высотой как число Например, пользователь ввел 3 * ** *** ** *
C++ SDL Отображение текста на экране Вывожу на экран текст формата *.ttf c помощью функции TTF_Render Эта функция может выводить только текст, а вот как вывести значение переменной? // *.h struct C_LoadImages { void ttfInit(); inline void ttfQuit() { TTF_CloseFont(font); TTF_Quit(); } http://www.cyberforum.ru/cpp-beginners/thread973669.html
C++ Странная ошибка
// ConsoleApplication5.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <vector> #include <cmath> #include <math.h> using namespace std;
Пользователь вводит вещественные числа x,y,z. Вычислить max(x+y+z, xyz) C++
Составить ДВЕ программы на языке C++ для решения одного из вариантов заданий с применением ОПЕРАТОРА if и с применением условий операции. Пользователь вводит вещественные числа x,y,z.Вычислить :max(x+y+z,xyz) Заранее Спасибо!
C++ Вместо своих данных в память вижу воистину неподдающееся объяснению явление какое-то http://www.cyberforum.ru/cpp-beginners/thread973645.html
Привет всем. Учусь кодить на C++. Решил в качестве практики написать линкер. Гружу объектник в память таким кодом: int ObjectFile::Load(char* FileName) { //Выводим имя файла printf("File: %s\n",FileName);
C++ namespace std Добрый день. Вычитал что могу использовать любой namespace. Но в другом месте написано что если не использовать std, то не сможет определится, например, cout. Так ли это? И если да, то как определить в каком пространстве какие имена? Спасибо. подробнее

Показать сообщение отдельно
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
10.10.2013, 20:52     templates, STL
Цитата Сообщение от ForEveR Посмотреть сообщение
Это че это? Использование шаблонов увеличивает время компиляции, однако уменьшает время выполнения (естественно я имею ввиду вычисления на этапе компиляции).
Любую возможность языка стоит использовать там где это нужно, что понятно. Но "избегать" некую возможность языка (причем далеко не самую плохую) это, простите, бред.
Потому что возможность очень даже хреновая. Я долго не замечал, как это удобно программировать БЕЗ шаблонов. Это как глоток свежего воздуха. Реализация шаблонов в C++ не без... багов. Я уже смирился с тем багом, но только усугубляет и так не очень хорошее положение. Идею многократного использования кода можно решить и без использования шаблонов, а лишь используя наследование и инкапсуляцию.

Что я вообще несу?.. Окей, закроем глаза на "баг". Просто используем шаблон.
C++
1
template <typename T> class List { /***/ };
А теперь попробуем отнаследоваться:
C++
1
template <typename T> class LinkedList : public List <T> { /***/ };
Вроде жить можно. Не очень красиво, но жить можно. Только... Что произошло с неперегруженными реализациями?.. Упс...
Окей, не забываем, что в C++ нет никакой рефлексии, и мы не можем посмотреть на типы в шаблоне. А код. Ну что за код?.. Он некрасив. Ладно, к этому тоже можно привыкнуть.

Но ко всему сразу?.. ИМХО, нужно просто избегать шаблонов там, где они не нужны. А не нужны они почти всегда.
 
Текущее время: 05:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru