Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.211.35.130] |
|
Страницы: (3) 1 2 [3] все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Цитата Олег М @ А не проще сделать, чтоб твои функции, вместо того чтоб возвращать код ошибки выдавали exception? Тогда все эти проблемы просто не возникнут Олег, ты о чём? Причём тут код ошибки или исключения? Я писал о constexpr, ошибках компиляции и ошибках линковки. Вообще, очень интересно, с чего ты взял, что мои функции возвращают коды ошибок? Может быть, ты меня с кем-то перепутал? |
Сообщ.
#32
,
|
|
|
Не знаю. Просто немного потерял нить – зачем это все вообще нужно?
|
Сообщ.
#33
,
|
|
|
Цитата Олег М @ Не знаю. Просто немного потерял нить – зачем это все вообще нужно? Сейчас сделал три разных enum. Два из enum используются в качестве битовых флагов, для конфигурирования. Примерно так: enum class config { none = 0x0000, alpha = 0x0010, beta = 0x0020, ... }; someclass obj0( config::nothing ); someclass obj1( config::alpha | config::beta ); Для них я перегрузил побитовые операторы. Третий enum используется в нескольких разных местах. В нём лежат идентификаторы. enum class msg_category{ first = 0x0000, second = 0x0001, ... }; 1. для конфигурирования. message_handler_guard mhg( msg_category::first, &funcname_proc ); 2. для отправки сообщений. dispatch::send( msg_category::first, "hello, world!" ); 3. для приёма сообщений void funcname_proc( int id, char* message ) { switch( static_cast< msg_category >( id ) ) { case msg_category::first: cout << message << endl; break; default: throw invalid_message( id ); } } У меня только простые классы-обёртки, поверх библиотечных функций. Библиотека использует свои идентификаторы. Переделывать библиотеку не могу и не хочу. Но в итоге, приходится обходится именно с теми константами, которые использует библиотека. Иначе, если придумаю свои константы, библиотека не поймёт пользователя, который работает через мою обёртку, а пользователь не поймёт библиотеку. |