Qt: Wartość zwracana przez sygnał działa, dlaczego oficjalny dokument mówi, że jest to niemożliwe / zabronione?

Dokumentacja Qt mówi, że zwrotne wartości sygnałów nie są możliwe:

Sygnały są generowane automatycznie przez moc i nie mogą być implementowane w pliku .cpp. Nigdy nie mogą mieć typów zwrotów (tj. Używać void).

Podobne pytania dotyczące SO:

Czy sygnały Qt mogą zwracać wartość?Qt: znaczenie wartości zwrotu w slocie?

Jednak z moich prób (Qt 4.8.1) mogę powiedzieć, że wartości zwracane działają:

Jeśli sygnał / gniazdo są w tym samym wątku, może to być ConnectionTypeQt::AutoConnectionZ sygnałem / szczeliną w różnych wątkach muszę użyćQt::BlockingQueuedConnection

W moim kodzie nazywam sygnał przez

QString dp = emit WscAircrafts::signalAircraftsJsonArray();

a sygnał moc zwraca aQString,

QString _t0;
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
return _t0;

To jest gniazdo moc, w którym przechodzi z powrotemQString

case 4: { QString _r = _t->slotAircraftJsonArray();
  if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; }  break;

Wszystko to wydaje się całkiem proste, więc dlaczego ta sprzeczność z dokumentacją? Gdzie byłby problem z użyciem wartości zwracanej? Jak już powiedziano, w moim kodzie to wydaje się działać.

questionAnswers(1)

yourAnswerToTheQuestion