Информация об изменениях

Сообщение Re[3]: Предпочтительный способ вычислений во времени компиля от 13.09.2019 11:21

Изменено 13.09.2019 11:36 rg45

Re[3]: Предпочтительный способ вычислений во времени компиля
Здравствуйте, sergii.p, Вы писали:

R>>Ничего не имею против функций, но вариант реализации на шаблонах структур тоже имеет право на жизнь, я считаю.


SP>почему? Какие ваши аргументы?


Исходя из презумции права на жизнь. Это право существует до тех пор, пока не обосновано обратное. В данном конкретном примере
Автор: rg45
Дата: 13.09.19
нет последовательного инстанцирования шаблонов, о котором ты говоришь выше, сложность реализации соизмерима с "функциональным" вариантом, так почему, спрашивается, нужно отказать этому варианту в праве на жизнь?

SP>ну вот я приводил пример реализации вычисления НОД в stl. Выражения свёртки тут не помогут. К тому же это С++17. Поиграться конечно можно. Но ни одного реального проекта в своём кругу знакомых пока не знаю.


Возможно, это тот случай, когда использование шаблонов классов менее оправдано, чем использование constexpr функций. В то же время, найдутся и другие задачи, которые наоборот, будет более рационально решать при помощи шаблонов классов. Например, такие задачи при прешении которых востребованы частичная специализация и активное использование SFINAE. Большинство задач можно решить и тем, и другим способом — благодаря тому, что отсутствие частичной специализации для шаблонов функций почти всегда можно компенсировать возможностью перегузок. Но шаблонах классов такие задачи может оказаться решать банально проще и нагляднее.

На мой взгляд, поиски УНВЕРСАЛЬНОГО предпочтительного решения несколько наивны.
Re[3]: Предпочтительный способ вычислений во времени компиля
Здравствуйте, sergii.p, Вы писали:

R>>Ничего не имею против функций, но вариант реализации на шаблонах структур тоже имеет право на жизнь, я считаю.


SP>почему? Какие ваши аргументы?


Исходя из презумции права на жизнь. Это право существует до тех пор, пока не обосновано обратное. В данном конкретном примере
Автор: rg45
Дата: 13.09.19
нет последовательного инстанцирования шаблонов, о котором ты говоришь выше. Сложность реализации соизмерима с "функциональным" вариантом. Так почему, спрашивается, нужно отказать этому варианту в праве на жизнь?

SP>ну вот я приводил пример реализации вычисления НОД в stl. Выражения свёртки тут не помогут. К тому же это С++17. Поиграться конечно можно. Но ни одного реального проекта в своём кругу знакомых пока не знаю.


Возможно, это тот случай, когда использование шаблонов классов менее оправдано, чем использование constexpr функций. В то же время, найдутся и другие задачи, которые наоборот, будет более рационально решать при помощи шаблонов классов. Например, такие задачи при прешении которых востребованы частичная специализация и активное использование SFINAE. Большинство задач можно решить и тем, и другим способом — благодаря тому, что отсутствие частичной специализации для шаблонов функций почти всегда можно компенсировать возможностью перегузок. Но шаблонах классов такие задачи может оказаться решать банально проще и нагляднее.

На мой взгляд, поиски УНВЕРСАЛЬНОГО предпочтительного решения несколько наивны.