Шаблоны C++: Убеждение себя от раздувания кодаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Шаблоны C++: Убеждение себя от раздувания кода

Сообщение Anonymous »

Я слышал о раздувании кода в контексте шаблонов C++. Я знаю, что с современными компиляторами C++ дело обстоит иначе. Но я хочу привести пример и убедить себя.

Предположим, у нас есть класс

Код: Выделить всё

template< typename T, size_t N >
class Array {
public:
T * data();
private:
T elems_[ N ];
};

template< typename T, size_t N >
T * Array::data() {
return elems_;
}
Далее, допустим, types.h содержит

Код: Выделить всё

typedef Array< int, 100 > MyArray;
содержит

Код: Выделить всё

MyArray ArrayX;
and y.cpp содержит

Код: Выделить всё

MyArray ArrayY;
Теперь, как я могу проверить, что пространство кода для MyArray::data() одинаково для ArrayX и ArrayY?

Что еще мне следует знать и проверить на этом (или других подобных простых) примерах? Если есть какие-либо советы по G++, меня это тоже интересует.

PS: Что касается раздувания, меня беспокоят даже малейшие раздувания, поскольку я работаю встраиваемых систем. контекст.



Дополнение: изменится ли ситуация как-нибудь, если классы шаблонов будут созданы явно?

Подробнее здесь: https://stackoverflow.com/questions/291 ... code-bloat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»