좋아요, C++의 C 스타일 가변 함수 사용법을 강의하기 전에 ... Qt MOC을 다시 작성하는 데 필요한 모든 것이 필요하지 않습니다.Qt와 가변 함수
내가 알고 싶은 것은 당신이 임의의 양/유형의 인수를 취하는 Qt 객체에서 "슬롯"을 가질 수 있는지 여부입니다. 것은 임의의 서명 슬롯을 가진 Qt 객체를 생성 할 수 있기를 정말로 원합니다. MOC는 표준 전처리 및 템플릿과 호환되지 않기 때문에 직접 접근 방식으로는 불가능합니다. ,
struct funky_base : QObject
{
Q_OBJECT
funky_base(QObject * o = 0);
public slots:
virtual void the_slot(...) = 0;
};
당신이 그것을 새로운 Qt는 물건을 선언하지 않는 한 너무 오래 QObject를 파생 객체의 하위 클래스 템플릿을 만들 수 있기 때문에이 후, 가능하다면 : 난 그냥 또 다른 아이디어를 내놓았다 내가 ...
물건을 소요 적절한 유형의 것으로 파생 템플릿 형식 파생 구현할 수 있어야합니다.
만약 그렇다면 어떻게 연결하나요? 이게 효과가 있니? 아무도이 미친 아무것도 시도하지있어 손을 모른다면
connect(x, SIGNAL(someSignal(int)), y, SLOT(the_slot(...)));
, 그래 난 결국 그것을 자신을 시도 할 것이다 ...하지만 누군가 이미 존재하고있다 지식 나는 아마도 내 시간을 낭비하기 전에 활용할 수 바라고 그것.
이 질문은 정적 부스트와 같은 신호 :: signals2하거나 기본 기능에 Qt는 신호를 변환 할 수있는 템플릿 개체의 '캐치 올'기본 클래스를 디자인 할 수있는 방법을 찾기위한 시도였다. 가변성 템플릿을 사용하는 슬롯을 만들 수 있다면 va_args에서 매개 변수를 재구성하기 위해 TMP를 사용할 수 있다고 생각했습니다. 문제에 대한 대답은 거의 정확하게 그랬지만 슬롯이 qt 메커니즘에 의해 호출되기 전에 잘라 버렸습니다. 나의 오래된 블로그 위치의
http://crazyeddiecpp.blogspot.com/2011/01/quest-for-sane-signals-in-qt-step-1.html
: 나는 문제의이 부분을 해결하는 방법 전체를 만드는 방법에 대한 기사 시리즈의 첫 번째 할부가 나타났다. 당신이 다른 이상한 표정을보고 싶다면 새로운 프로필이 내 프로필에 있습니다.
NVM, 나는 내 자신의 질문에 대답했다. 물론 Qt도이 작업을 수행 할 수 없습니다. –
타입이 지정되지 않은 슬롯을 사용하면 언어의 핵심 이점 중 하나 인 컴파일 타임 타입 안전을 제공 할 수 있습니다. –
프랭크, 프랭크, 프랭크. Qt는 이미 그렇게했습니다. 나는 형식 안전성을 다시 얻으려고 노력하고있다. 이것은 하나의 실패한 시도였습니다. 궁극적 인 성공 사례를 보려면 내 블로그를 참조하십시오 (내 프로필에 있습니다). –