Форум: "Основная";
Текущий архив: 2017.02.05;
Скачать: [xml.tar.bz2];
ВнизУказатель на шаблонный тип в шаблонном интерфейсе Найти похожие ветки
← →
ТС (2012-09-20 12:34) [0]
IMyInterface<TType> = interface
function GetElementPtr: ^TType; stdcall; // E2029 Identifier expected but "^" found
end;
TMyClass<TType> = class(TInterfacedObject, IMyInterface<TType>)
public type
PType = ^TType; // В классе можно определить вложенный тип...
strict protected
function GetElementPtr: PType; stdcall; // ...и использовать его
end;
Вопрос, собственно вот в чем: Как в шаблонах интерфейсов прописывать "указатель на шаблонный тип (TType)"?
← →
ТС (2012-09-20 13:00) [1]Есть вот такое решение, но какое-то оно не очень веселое:
TDummyAncestor<TType> = class
public type
PType = ^TType;
end;
IMyInterface<TType> = interface
function GetElementPtr: TDummyAncestor<TType>.PType; stdcall;
end;
TMyClass<TType> = class(TInterfacedObject, IMyInterface<TType>)
strict protected
function GetElementPtr: TDummyAncestor<TType>.PType; stdcall;
end;
← →
ТС (2012-09-20 13:17) [2]Впрочем, сделал вспомогательный шаблон, закинул его в общий модуль, пусть валяется...
TPtr<TType> = class
public type
PType = ^TType;
end;
Теперь в любом месте:TTemplate<TType> = class
function GetSomething: TPtr<TType>.PType;
end;
илиITemplate<TType> = interface
function GetSomething: TPtr<TType>.PType;
end;
Такие вот пироги...
← →
ТС (2012-09-20 13:19) [3]Но если у кого-то есть решение получше, буду рад узнать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2017.02.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.001 c