Попробуйте скомпилировать приведенный ниже код
template
void foo(){}
Я получил ошибку компилятора 'void' не является допустимым типом для параметра шаблона нетипичного типа .
В качестве параметра шаблона вы можете передать:
1) type , затем вы объявляете его, используя class / typename, как показано ниже:
template< class/typename A[optional] = void>
void foo2(){}
2) non-type , затем вы можете передать в качестве параметра шаблона некоторое значение типа intergers, указатели, ссылку на Lvalue и т. Д. (Полный список здесь )
template
void foo3(){}
3) тип шаблона параметр
В вашем примере is_nothrow_move_constructible
возвращает значение true для A
, затем компилятор встречает строку:
template {}>>
что такое:
template
эта строка имеет неверную синтаксис, и компилятор удаляет этот шаблон функции-члена из набора перегрузок. Вы можете исправить это, объявив enable_if_t
как параметр типа:
template {}> > // typename = void
void realloc_impl(priority_tag<2> pr)
{
cout << "nothrow move \n";
};
или как нетипичный (указатель на void), что вы сделали в своем примере.
Я помог записи, что экспорт импорта RTF просачивается KOffice. Можно взглянуть на код в https://cgit.kde.org/koffice.git/tree/filters/kword/rtf. Код является модульным, и он зависит только от QT
Можно спросить эти #koffice
парни на irc.freenode.org
по irc. Их программа kword
может открыть файлы RTF и действительно также записана в QT. Я уверен, что они были бы рады сказать Вам о том, как они делают это.
Быстрый поиск SourceForge предлагает librtf. Это не было разработано в некоторое время, но перечислено как стабильное и находится под LGPL. Я не знаю, будет ли это поддерживать то, в чем Вы нуждаетесь, но я всегда предлагаю искать SourceForge библиотеки.