Шаблоны 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

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