Здравствуйте, Galiulin Rishat Faimovich, Вы писали:
GRF>Здравствуйте, k.o., Вы писали:
KO>>Здравствуйте, Galiulin Rishat Faimovich, Вы писали:
KO>>>>>>Попробуйте повторить этот пример используя ваш specification.hpp.
GRF>>>Вроде теперь ваш пример работает
KO>>Зато, теперь не работает добавление константности:
GRF>А для каких целей нужно будет добавление константности если полностью перейти на in, in_out, out нотацию?
GRF>Как я понимаю in параметр должен гарантировать толко неизменность передаваемого внешнего для функции параметра.
Многие (я в том числе) предпочитают обеспечивать, также, неизменяемость входных параметров внутри самой функции (см., например, "Совершенный Код" 2-е издание, изд. Питер, с. 173). Вы сами-то
здесьАвтор: Galiulin Rishat Faimovich
Дата: 14.09.11
зачем заменили 'int* bar_in' на 'const int*
const bar_in'?

То, что в некоторых случаях их всё-таки имеет смысл делать изменяемыми, всего лишь, показывает ограниченность модели in/in_out/out (или, если хотите, системы типов C++). В принципе, всё это прекрасно решается введением соглашений об именовании параметров (например, добавлением префиксов in, inOut, out к именам параметров) и code review, но, в этом случае нет никакого смысла и в дополнительных обёртках, таких как ваши.