Мне было интересно, почему не может быть тип данных void, который не является указателем?C++ Void non-pointer
Конечно, вы могли бы пройти весь определенный размер вещи, имея
void4
void8
void32
и только разрешают «отбрасываемой» типа аннулируются данных к другому классу, если его размер равен или под с размером классов ,
Есть ли что-то, что мне не хватает, или комитет C++ просто считает это плохой практикой?
EDIT:
Я не объяснил себя очень хорошо, так что я дам пример ее использования:
main()
{
/*
Lets make a list of unknown elements
std::string is 8 bytes, and float is 4
bytes, so we'll reserve 8 byte sequences
*/
vector<void8> elements;
elements.push_back((void8) string("First string element"));
elements.push_back((void8) float(5.76));
elements.push_back((void8) string("Third string element"));
// Ect.
cout << (string) elements[0];
cout << (float) elements[1];
cout << (string) elements[2];
cout << (float) elements[2]; // Garbage
void1 data;
data = (void1) bool(1);
data = (void1) unsigned int(80094); // Error, not enough size
}
Его назвали недействительным, потому что вы не знаете, какой тип это в настоящее время хранится, подобно указателю void.
Что было бы полезно для этого, какая проблема? – nos
Я должен уточнить, он будет использоваться аналогично указателю void - возможно, void - не лучшее имя для него. – Tomas
void8 будет типом с 8 байтами, который может быть перенесен на любой тип в пределах 8 байтов в любой момент времени. – Tomas