Рассмотрим следующий код:
struct POD
{
static const uint32_t CONST_1;
static constexpr uint32_t CONST_2;
uint32_t Member_1;
uint8_t Member_2;
};
Подскажите, пожалуйста, является ли данный тип POD
-ом?
Я хочу использовать POD
структуру для общения через границу DLL
. Но мне также хотелось бы, чтобы в этой структуре находились кое-какие формальные константы, к которым было бы удобно обращаться из кода, например, так:
POD::CONST_1
POD::CONST_2
Не сломают ли таки константы представление структуры в памяти?
Статические поля не хранятся внутри экземпляров класса, так что ваша структура останется POD.
Static members of a class are not associated with the objects of the class: they are independent variables with static or thread (since C++11) storage duration or regular functions. Источник
В этом легко убедиться на примере:
#include <iostream>
using namespace std;
struct test
{
static uint32_t testVar;
uint32_t otherVar;
};
int main()
{
cout <<sizeof(test)<< endl;
return 0;
}
Пример выдает четверку, а не восьмерку, как можно было бы ожидать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброе время сутокНеобходимо сделать скрипт на Lua который будет читать png файлы, записывая каждый пиксель в массив, затем по вызову передавать...
Есть отдельный класс Resources,в котором хранятся контейнеры: