Nie ma czegoś takiego w standardowej bibliotece C++. Jak wspomniano w komentarzach, nadal możesz znaleźć boost::blank
w Boost, co prawdopodobnie najbardziej przypomina klasę, której szukasz. Gdyby taka klasa istniała w standardowej bibliotece, nie sądzę, że byłoby tak wiele bibliotek stron trzecich definiujących swoje własne struct empty {}
.
Jeśli potrzebna jest tylko klasa bez elementów danych i najmniejszy możliwy rozmiar - nie może być mniejsza niż 1 - (i być może skorzystać z pustej optymalizacji podstawy), nadal można użyć std::tuple<>
. W rzeczywistości jest używany do tego celu (optymalizacja pustej bazy) w implementacji niektórych klas w libstdC++.
Jeśli chcesz się upewnić std::tuple<>
naprawdę jest pusta klasa:
#include <iostream>
#include <tuple>
#include <type_traits>
int main()
{
// prints 1
std::cout << std::is_empty< std::tuple<> >::value;
}
do mojej najlepszej wiedzy, nie. –
Czy chcesz struct, który po prostu nie ma członków danych (a więc mają rozmiar 1), czy naprawdę pustą strukturę? – kennytm
Być może 'std :: tuple <>'? – jogojapan