LINUX.ORG.RU

template<> — а это что за зверь

 


0

1

Коллеги, читая чужой код наткнулся на строки

        template<> inline bool is<float, float>(const float& left, const float& right, const std::string& message) {
        return is(left, right, message, nearly_equal<float>());
  }

https://github.com/cbab/libtappp/blob/master/include/tap%2B%2B/tap%2B%2B.h#L180

Такого использования ключевого слова template я раньше не встречал.

Чисто интуитивно оно задает кастомное поведение шаблона is для случая если его позвали в комбинации float/float.

Просмотрел еще раз документацию, похожего ничего не нашел.

Что это? Как это понимать? Это же должно как-то называться и где-то быть описанным…

Update: Это называется Template Specialization, и по этим ключевым словам ищется любым посковиком…

@ox55ff, спасибо!

★★★

Последнее исправление: shaplov (всего исправлений: 1)

Чисто интуитивно оно задает кастомное поведение шаблона is для случая если его позвали в комбинации float/float.

this. Только называется явной специализацией.

ox55ff ★★★★★
()
Ответ на: комментарий от sudopacman

DuckDuckGo, вообще-то, проприетарный. Нет ни единого повода верить в приватность, или чего они там ещё заявляют.

WitcherGeralt ★★
()

C++ довольно большой и сложный. Рекомендую все же букварь по нему почитать, чтобы знания структурировать. Там про специализацию шаблонов точно есть.

dvetutnev
()
Ответ на: комментарий от dvetutnev

Рекомендую все же букварь по нему почитать

В букваре (первое издание Страуструпа) шаблонов вообще не было, как и множественного наследования. Тут, скорее, с подарочным изданием Розенталя сравнивать :)

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Рекомендую все же букварь по нему почитать

В букваре (первое издание Страуструпа) шаблонов вообще не было, как и множественного наследования. Тут, скорее, с подарочным изданием Розенталя сравнивать :)

Вот да. В третьем про шаблоны есть, но про специализацию нету. Я внимательно его раздел про шаблоны изучил.

Что у нас за подарочное издание Розенталя нынче? Читать голую спецификацию на английском я пожалуй не готов пока…

shaplov ★★★
() автор топика
Последнее исправление: shaplov (всего исправлений: 1)
Ответ на: комментарий от shaplov

Читать голую спецификацию на английском я пожалуй не готов пока…

Её официальный выпуск сначала надо ещё купить.

gag ★★★★★
()
Ответ на: комментарий от shaplov

Что у нас за подарочное издание Розенталя нынче?

Самому интересно.

Спецификация ещё и спецификации рознь. C++20 хоть и стандарт, но толком не устоялся и не везде поддерживается, модули те же.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

В букваре (первое издание Страуструпа) шаблонов вообще не было, как и множественного наследования

В издании 2010 года уже есть. И шаблоны, и множественное наследование.

dvetutnev
()
Ответ на: комментарий от dvetutnev

Ну извиняй, со словом «букварь» это была самая близкая ассоциация. На русском, кстати, букварь издали сначала в духе эпохи братков на мерсах - в мягкой обложке И БЕЗ УКАЗАНИЯ АВТОРА!

А вопрос, что по современному C++ почитать кроме стандартов и желательно на родном для читателя языке, остаётся интересным.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Да, вот официальный репозиторий с исходниками TeX и собранными PDF.

Было дело, смотрел выборочно некоторые моменты, всерьёз ознакомиться не осилил. Если что и будет существенно отличаться от финальника, то, вероятно, какой-нибудь новый функционал.

To TC: в этом конкретном случае, поиск template<> по документу выдал бы нужный параграф, а дальше в поисковик.

PhysShell ★★
()
Ответ на: комментарий от PhysShell

официальный

с исходниками TeX

Вроде и пустячок — а приятно!

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

и @fsb4000

Да, конечно. Я делал ударение на формальной официальности.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.