#include <iostream>
struct A
{
int arr[666];
};
int main()
{
std::cout<<sizeof( (static_cast<A*>(nullptr))->arr); //OK?
}
Приведенный выше код может быть запущен без ошибок. Говорит ли стандарт что-нибудь о такой ситуации?
#include <iostream>
struct A
{
int arr[666];
};
int main()
{
std::cout<<sizeof( (static_cast<A*>(nullptr))->arr); //OK?
}
Приведенный выше код может быть запущен без ошибок. Говорит ли стандарт что-нибудь о такой ситуации?
struct A { int arr[666]; }; std::cout << sizeof(A().arr);
. См. en.cppreference.com/w/cpp/language/. Существует также способ C, который существует немного дольше и, судя по тому, как он выглядит на cppreference, в любом случае делает то же самое (объявляет временный объект, а затем исключает его как неиспользуемый):std::cout << sizeof( ((struct S) { }).a )
- person l.k   schedule 05.05.2019