Определение наличия внешней функции на этапе компиляции
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 17.04.17 04:52
Оценка:
Есть пачка отладочных функций преобразующих пользовательский тип в нечто удобочитаемое:
QString toString(const MyType &val);


Но иногда хочется получить не только представление в виде строки, а запихать всё это дело сразу в QDebug (отладочный поток вывода для Qt). Само собой, для каждой из этих MyType можно реализовать еще и
QDebug operator<<( QDebug debug, const MyTypeT &val )

который только и будет что делать – вызывать toString, но хочется сделать разом, т.е. нужен шаблон. Наивный шаблонный вариант само собой не прокатывает и нужно разрешить оператор только для тех типов, для который функция toString реализованна. Как подобное реализовать для случая если toString является членом класса который необходимо задампировать вроде всё понятно, но с внешней функцией выходит какая-то хрень, слабоват я в шаблонной магии

Так что вопроса два:
1) Как сделать?
2) Что сейчас по шаблонной магии модно читать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.