Здравствуйте, vdimas, Вы писали:
V>Именно это позволяет бороться с распуханием кода после применения шаблонов.
И насколько успешно позволяет?
Например, начнём с такой единицы трансляции, состоящей только из подключения заголовочных файлов:
#include <array>
#include <cstdint>
Потом постепенно добавляем explicit instance'ы каких-нибудь шаблонных классов, и компилируем:
#include <array>
#include <cstdint>
template class std::array<std::uint8_t, 5>;
#include <array>
#include <cstdint>
template class std::array<std::uint8_t, 5>;
template class std::array<double, 7>;
#include <array>
#include <cstdint>
template class std::array<std::uint8_t, 5>;
template class std::array<double, 7>;
template class std::array<std::array<double, 7>, 11>;
Какой тут будет выигрыш от указанной оптимизации, и как его задетектить?