printf( "g" );
}
//main.cpp
int main()
{
A a;
a.f();
}
Подскажите плиз, что мешает добавить такую возможность в C++? Или может это уже добавлена? Обратите внимание я не про экпорт шаблонов из cpp, а про "почему" нельзя методы класса которые не зависят от T помещать в cpp. Спасибо
Теоретически модули позволят разделить интерфейс и реализацию. Но код написан как специализация отдельного метода шаблона. Такое в плюсах нельзя.
Тут проблема-то проста очень. Этому мешает то, как устроены современные компиляторы С++, и как они должны быть написаны , чтобы быть совместимыми с языком С. ЧТобы делать то, как ты хочешь, нужна реально база данных проекта, куда будут помещаться все скомпилированные элементы, и потом из чего будет генерироваться весь машинный код. Но это НАСТОЛЬКО неудобно и против всего, как это работает сейчас, что индустрия просто не хочет это делать, потому что ЛЕГЧЕ жить так. Создание нового компилятора языка С++ — очень затратное дело, поверь.
Модули тоже часть про то же, да. Но и с ними будет такой же гемор как и с этим (разделяемыми определениями шаблонов)
Обсуждают сегодня