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é.