Сообщение Re[2]: Помогите с вариадиками от 09.01.2018 14:06
Изменено 09.01.2018 14:08 SaZ
Re[2]: Помогите с вариадиками
Здравствуйте, watchmaker, Вы писали:
W>Здравствуйте, SaZ, Вы писали:
SaZ>>Что-то не получается сделать нужные перегрузки.
W>А зачем вообще тут делать перегрузки? Они же лишние и пользы не несут. Просто переименуй первый метод Validate и всё получится:
[/cut]
W>Как бы тут сразу видно, что функции для проверки одного элемента и для проверки списка из одного элемента — разные. Ибо список из одного элемента и сам элемент — тоже вроде разные типы.
Как бы не помогает, пробовал уже. — https://ideone.com/24vOZu.
W>
Опечатка же.
W>Здравствуйте, SaZ, Вы писали:
SaZ>>Что-то не получается сделать нужные перегрузки.
W>А зачем вообще тут делать перегрузки? Они же лишние и пользы не несут. Просто переименуй первый метод Validate и всё получится:
[cut]
W>[ccode]
W>// проверка одного элемента
W>template< typename T >
W>bool Validate_1( const Table& table )
W>{
W> if ( table.Meta() == T::StaticMeta() )
W> {
W> Print<T>( table );
W> return true;
W> }
W> return false;
W>}
W>// проверка списка
W>template< typename T = void, typename ...Tables >
W>bool Validate( const Table& table )
W>{
W> if ( Validate_1<T>( table ) )
W> return true;
W> return Validate<Tables...>(table);
W>}
W>template<>
W>bool Validate( const Table& table ) {
W> return false;
W>}
W>
[/cut]
W>Как бы тут сразу видно, что функции для проверки одного элемента и для проверки списка из одного элемента — разные. Ибо список из одного элемента и сам элемент — тоже вроде разные типы.
Как бы не помогает, пробовал уже. — https://ideone.com/24vOZu.
W>
SaZ>> bool operator!=(const MetaInfo& rhs) const
SaZ>> {
SaZ>> return operator==(rhs);
SaZ>> }
SaZ>>};
W>
Что-то этот фрагмент тоже выглядит подозрительно Опечатка же.
Re[2]: Помогите с вариадиками
Здравствуйте, watchmaker, Вы писали:
W>Здравствуйте, SaZ, Вы писали:
SaZ>>Что-то не получается сделать нужные перегрузки.
W>А зачем вообще тут делать перегрузки? Они же лишние и пользы не несут. Просто переименуй первый метод Validate и всё получится:
W>Как бы тут сразу видно, что функции для проверки одного элемента и для проверки списка из одного элемента — разные. Ибо список из одного элемента и сам элемент — тоже вроде разные типы.
Как бы не помогает, пробовал уже. — https://ideone.com/24vOZu.
W>
Опечатка же.
W>Здравствуйте, SaZ, Вы писали:
SaZ>>Что-то не получается сделать нужные перегрузки.
W>А зачем вообще тут делать перегрузки? Они же лишние и пользы не несут. Просто переименуй первый метод Validate и всё получится:
Скрытый текст | |
| |
W>Как бы тут сразу видно, что функции для проверки одного элемента и для проверки списка из одного элемента — разные. Ибо список из одного элемента и сам элемент — тоже вроде разные типы.
Как бы не помогает, пробовал уже. — https://ideone.com/24vOZu.
W>
SaZ>> bool operator!=(const MetaInfo& rhs) const
SaZ>> {
SaZ>> return operator==(rhs);
SaZ>> }
SaZ>>};
W>
Что-то этот фрагмент тоже выглядит подозрительно Опечатка же.