Это мой вопрос. Мне просто интересно, что такое консенсус по ограничению типов, которые могут быть переданы общей функции или классу. Я подумал, что в какой-то момент я прочитал, что если вы делаете универсальное программирование, обычно лучше оставить вещи открытыми, а не пытаться закрыть их (не помню источник).
Я пишу библиотеку, которая имеет некоторые внутренние общие функции, и я чувствую, что они должны допускать использование только типов внутри библиотеки, просто потому, что я имею в виду их использование. С другой стороны, я не совсем уверен, что мое усилие блокировать вещи стоит того.
У кого-нибудь может быть несколько источников для статистики или авторитетных комментариев по этой теме? Меня также интересуют здравые мнения. Надеюсь, это не аннулирует этот вопрос вообще:\
Также есть ли теги здесь на SO, которые приравниваются к "лучшей практике"? Я не видел этого конкретно, но, похоже, было бы полезно получить всю информацию о лучшей практике для данной темы SO... возможно, нет, просто мысль.
Изменить: один из ответов на сегодняшний день сказал, что тип библиотеки, которую я делаю, будет значительным. Это библиотека базы данных, которая заканчивает работу с контейнерами STL, вариациями (кортежем), Boost Fusion, такими вещами. Я могу видеть, как это будет актуально, но меня также интересуют эмпирические правила, чтобы определить, к какому пути идти.