Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
nietypowe używane rozszerzenie: projektowanie składowych złożonych używanych w
offsetof
Uwagi
Jeśli używasz offsetof(T, m)metody , gdzie m jest projektowaniem składowych złożonych, kompilator generuje ostrzeżenie podczas kompilowania z opcją /Wall .
To ostrzeżenie jest nowe w programie Visual Studio 2017 w wersji 15.3 i jest domyślnie wyłączone. Użyj /Wall polecenia , aby włączyć wszystkie ostrzeżenia wyłączone domyślnie lub /w14841 włączyć C4841 jako ostrzeżenie poziomu 1. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone. Aby uzyskać informacje na temat wyłączania ostrzeżeń według wersji kompilatora, zobacz Ostrzeżenia kompilatora według wersji kompilatora.
Przykład
Poniższy kod jest źle sformułowany i może spowodować awarię w czasie wykonywania:
struct A {
int arr[10];
};
// warning C4841: non-standard extension used: compound member designator in offsetof
constexpr auto off = offsetof(A, arr[2]);
Aby rozwiązać ten problem, zmień kod tak, aby nie był używany offsetof z projektantem składowych złożonych.