Я определяю интерфейс C ++ с джинн:
member = interface +c {
get_id(): string;
get_name(): string;
}
Моя унаследованная реализация использует методы получения const, т.е.
class MyMemeber: public Member {
private:
string id;
string name;
public:
string get_id() const override { return id; }
string get_name() const override { return name; }
}
Это явно не компилируется, из-за const
приписывать. Могу я научить джинн сгенерировать базовый интерфейс с помощью const getter?
Это нигде не задокументировано, хотя с самого начала Джинни генерирует методы const (строка 295 из src / source / CppGenerator.scala). Просто добавьте const перед сигнатурой метода в файле idl:
member = interface +c {
const get_id(): string;
const get_name(): string;
}
Я думаю, что было бы неплохо провести тесты запросов для этой функции (и некоторые документы), в настоящее время проверяются только константные поля.
Других решений пока нет …