Avertissement du compilateur (niveau 4) C4841

extension non standard utilisée : indicateur de membre composé utilisé dans offsetof

Notes

Si vous utilisez offsetof(T, m), où m est un indicateur de membre composé, le compilateur génère un avertissement lorsque vous compilez avec l’option /Wall .

Cet avertissement est nouveau dans Visual Studio 2017 version 15.3 et est désactivé par défaut. Permet /Wall d’activer tous les avertissements désactivés par défaut ou /w14841 d’activer l’avertissement C4841 comme avertissement de niveau 1. Pour plus d’informations, consultez les avertissements du compilateur désactivés par défaut. Pour plus d’informations sur la désactivation des avertissements par version du compilateur, consultez avertissements du compilateur par version du compilateur.

Exemple

Le code suivant est mal formé et peut entraîner un blocage au moment de l’exécution :

struct A {
   int arr[10];
};

// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);

Pour résoudre le problème, modifiez le code pour ne pas utiliser offsetof avec un indicateur de membre composé.