Как стать автором
Обновить

Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 4.2

Время на прочтение11 мин
Количество просмотров6.6K
Всего голосов 27: ↑27 и ↓0+27
Комментарии8

Комментарии 8

Посмотрел на код. На объяснения. Понял, что, похоже, было проще напедалить шаблон:
template<typename T, int typeKind, bool isSigned, int bits, //>
struct BuiltinTypeTraits {};


И тупо специализировать этот шаблон для всех встроенных типов, чем городить огород из детекторов. Кода бы получилось меньше.


И с long (как short, signed и unsigned) есть одна малоизвестная особенность: всё это модификаторы интегрального типа, а не часть его имени. :) То есть записи long signed int/long signed/long/signed long/signed long int значат одно и то же. :D

По поводу первого комментария — в смысле просто сделать шаблон где сразу указывается жестко что «вот этот тип беззнаковый, столько то бит», а «этот тип знаковый, столько то бит»?

По поводу второй части с long. Так это по-моему широко известная особенность. Или это указание на мой косяк где-то? Я не очень понимаю какое место тогда.

Малоизвестной особенностью здесь было бы указать что auto в C уже давно специальное слово, и раньше оно означало совсем не то что сейчас.)
По поводу первого комментария — в смысле просто сделать шаблон где сразу указывается жестко что «вот этот тип беззнаковый, столько то бит», а «этот тип знаковый, столько то бит»?

Ага.
По поводу второй части с long. Так это по-моему широко известная особенность.

Ну мало ли, вдруг кто не знает? :)
Возможно, но хочу чтобы компилятор за меня думал кто там какой. А то больно много чести все ему руками объяснять. Вообще хочу чтобы компилятор все считал во время компиляции, а результатом был бы исполняемый файл где сразу выводился ответ. =)
Позволять думать компилятору можно тогда, когда компилятор адекватный. А когда не очень… Ну… :) Впрочем, каждый развлекается как хочет. :)

А может нужно было просто выбросить Borland C++ 6.0, из-за которого вся эта канитель, на помойку?

Во-первых не из-за него одного. Студия от Microsoft тоже приподносит много сюрпризов.
Во-вторых выкинуть и заменить, так? Чем? "Продолжателем" от Embarcadero, где баги все те же, а еще десяток новых.
В-третьих вы статью с начала читали? Я лично разрабатывал бы вообще на Visual Studio последней или на Qt с современным компилятором.


Комментарий ваш конечно очевиден, но довольно бессодержателен. На этом давайте воздержимся от этой дискуссии и от подобных комментариев впредь.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории