Re[16]: Реализация IN, IN-OUT и OUT параметров функций
От: Galiulin Rishat Faimovich Узбекистан  
Дата: 20.09.11 06:56
Оценка:
Здравствуйте, k.o., Вы писали:

KO>Здравствуйте, Galiulin Rishat Faimovich, Вы писали:


KO>>>>>Попробуйте повторить этот пример используя ваш specification.hpp.


GRF>>Вроде теперь ваш пример работает


KO>Зато, теперь не работает добавление константности:

KO>
KO>void
KO>sink2( in< const std::unique_ptr< const A > > arg )
KO>{
KO>  // would like to get compile error for attempts to modify arg, e.g.:
KO>  // arg().release();
KO>}

KO>void
KO>sink1( in< std::unique_ptr< const A > > arg )
KO>{
KO>    std::cout << "sink1 owns pointer to A: " << arg( ).get( ) << std::endl;
KO>    sink2( in_( std::move( arg() ) ) );
KO>    std::cout << "sink1 passed ownership to sink2: " << arg( ).get( ) << std::endl;
KO>}
KO>


А для каких целей нужно будет добавление константности если полностью перейти на in, in_out, out нотацию?
Как я понимаю in параметр должен гарантировать толко неизменность передаваемого внешнего для функции параметра.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.