Upozornění kompilátoru C5243
'type': použití neúplné třídy 'class-name' může způsobit porušení odr kvůli omezení ABI. Tento problém můžete obejít zadáním klíčového slova dědičnosti v předávací deklaraci třídy.
Poznámky
Microsoft C++ ABI používá více než jeden typ ukazatele na člena. Tyto typy mají různé velikosti, které závisí na modelu dědičnosti používaném třídou. Standard C++ umožňuje deklarovat ukazatel na člen neúplného typu třídy. Pokud deklarujete proměnnou typu pointer-to-member pro neúplnou třídu, kompilátor musí použít nejobecnější reprezentaci. Může vést k jednomu pravidlu definice nebo porušení pravidla ODR, protože kompilátor může použít menší, konkrétnější reprezentaci pro tento typ ukazatele na člena v jiných jednotkách překladu, kde je k dispozici úplný typ třídy.
Chcete-li tuto chybu vyřešit, můžete před deklarovat proměnnou ukazatele na člena zadat úplný typ třídy. Nebo použijte klíčové slovo dědičnosti specifické pro Microsoft k určení správného modelu dědičnosti u neúplné deklarace předávací třídy.
Upozornění kompilátoru C5243 je v sadě Visual Studio 2019 verze 16.10 nové a ve výchozím nastavení je vypnuté. Další informace o povolení tohoto upozornění najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá.