Общие / шаблонные рекомендации по программированию: ограничивать или не ограничивать типы

Это мой вопрос. Я' Мне просто любопытно, каков консенсус по ограничению типов, которые могут быть переданы в универсальную функцию или класс. Я думал, что в какой-то момент прочитал, что если вы занимаетесь универсальным программированием, обычно лучше оставить вещи открытыми, а не пытаться закрыть их (не помню источник).

Я пишу библиотека, которая имеет некоторые внутренние универсальные функции, и я считаю, что они должны разрешать использование с ними только типов из библиотеки просто потому, что я имею в виду их использование. С другой стороны, я не совсем уверен, что мои попытки заблокировать вещи того стоят.

Кто-нибудь может иметь какие-то источники статистики или авторитетные комментарии по этой теме? Меня также интересуют здравые мнения. Надеюсь, это не отменяет полностью этот вопрос: \

Кроме того, есть ли здесь какие-либо теги на SO, которые приравниваются к «лучшей практике»? Я не видел этого специально, но, похоже, было бы полезно иметь возможность получить всю информацию о передовой практике для данной темы SO ... может быть, нет, просто мысль.

Edit: One ответ до сих пор упоминал, что тип библиотеки, которую я делаю, будет иметь значение. Это библиотека базы данных, которая в конечном итоге работает с контейнерами STL, переменными (кортежами), Boost Fusion и т. Д. Я понимаю, насколько это актуально, но меня также интересовали бы практические правила для определения того, какой путь двигаться.

13
задан Brett Rossier 18 May 2011 в 17:03
поделиться