Ошибка сборки с формами в CppCMS

У нас проблемы с включением формы входа в наш проект.
Мы следуем за шагами в http://cppcms.com/wikipp/en/page/cppcms_1x_forms

Это определение формы:

struct SignInFormInfo : public cppcms::form {
/* Error 1 */ cppcms::widgets::text user_name;
/* Error 2 */ cppcms::widgets::password password;
cppcms::widgets::submit submit;

SignInFormInfo() {
user_name.message("User name");
password.message("Password");
submit.value("Sign in");

add(user_name);
add(password);
add(submit);

// Restrictions
user_name.limits(1, 31);
password.non_empty();
}
};

и мы получаем эти ошибки сборки:

Ошибка 1: тип «cppcms :: widgets :: text» должен реализовывать унаследованный
чисто виртуальный метод ‘cppcms :: base_form :: load’

Ошибка 2: тип «cppcms :: widgets :: password» должен реализовывать
унаследованный чисто виртуальный метод
‘CppCMS :: виджетами :: base_widget :: render_input’

Мы также получаем ошибки в библиотеках cppcms «cppcms / form.h» и
«booster / hold_ptr.h» о том, что переменная «_data» является закрытой.

Мы используем 1.0.3 версию CppCMS.

Спасибо за вашу помощь

2

Решение

Какой метод «нагрузки» следует использовать?

один из класса «base_html_input» или один из «base_text». Есть 2 метода с именем «load», которые происходят из разных классов (и оба получены из одного и того же класса!), Оба являются базовыми классами одного и того же класса. Компилятор просто не знает, какой из них использовать. Лучше всего реализовать себя «нагрузкой».

widgets::text::load(param) //actually missing in CPPCMS
{
//wich one of the 2 methods has to be called.. or both have to be called?
base_html_input.load(param)
base_text input.load(param);
}

Это, вероятно, недостаток дизайна используемой вами библиотеки (если только где-то не существует фабрика объектов «widgets :: text», которая возвращает объекты с правильной реализацией, в любом случае статья с учебником неверна).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]