Derleyici Uyarısı (hata) C4597
tanımsız davranış:
offsetof
sanal tabanın bir üyesine uygulanır
Where offsetof(T, m)
kullanıldığında m
statik veri üyesi veya üye işlevi C4597 sonucunu elde eder.
Açıklamalar
Bu uyarı Visual Studio 2017 sürüm 15.3'te yenidir. Varsayılan olarak hata olarak bildirilir. Uyarıları derleyici sürümüne göre devre dışı bırakma hakkında bilgi için bkz . Derleyici sürümüne göre derleyici uyarıları.
Örnek
Aşağıdaki kod C4597 hatasını oluşturur:
#include <cstddef>
struct A {
int ten() { return 10; }
static constexpr int two = 2;
};
constexpr auto off = offsetof(A, ten); // C4597: undefined behavior: offsetof applied to member function 'A::ten'
constexpr auto off2 = offsetof(A, two); // C4597: undefined behavior: offsetof applied to static data member 'A::two'
Bu kod kötü biçimlendirilmiş ve çalışma zamanında kilitlenmeye neden olabilir. Hatayı düzeltmek için kodu değiştirin: üye işlevlerinde veya statik veri üyelerinde çağırmayın offsetof
. C++ standardı tarafından izin verilmeyen taşınabilir olmayan kod.