Upozornění kompilátoru (úroveň 4) C4841
Použité nestandardní rozšíření: složeného členového návrhátoru použitého v
offsetof
Poznámky
Pokud použijete offsetof(T, m)
, kde m
je složený člen návrh, kompilátor vygeneruje upozornění při kompilaci s /Wall
možností.
Toto upozornění je nové v sadě Visual Studio 2017 verze 15.3 a je ve výchozím nastavení vypnuté. Umožňuje /Wall
povolit všechna upozornění, která jsou ve výchozím nastavení vypnutá, nebo /w14841
povolit C4841 jako upozornění úrovně 1. Další informace najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá. Informace o tom, jak zakázat upozornění podle verze kompilátoru, naleznete v tématu Upozornění kompilátoru podle verze kompilátoru.
Příklad
Následující kód je špatně vytvořený a může potenciálně způsobit chybové ukončení za běhu:
struct A {
int arr[10];
};
// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);
Pokud chcete tento problém vyřešit, změňte kód tak, aby se nepoužíl offsetof
s návrhem složeného člena.