Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
non-standard extension used: compound member designator used in
offsetof
Remarks
If you use offsetof(T, m), where m is a compound member designator, the compiler generates a warning when you compile with the /Wall option.
This warning is new in Visual Studio 2017 version 15.3, and is off by default. Use /Wall to enable all warnings that are off by default, or /w14841 to enable C4841 as a level 1 warning. For more information, see Compiler warnings that are off by default. For information on how to disable warnings by compiler version, see Compiler warnings by compiler version.
Example
The following code is ill-formed and could potentially cause a crash at runtime:
struct A {
int arr[10];
};
// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);
To fix the issue, change the code to not use offsetof with a compound member designator.