Es gibt so etwas in der C++ - Standardbibliothek nicht. Wie in den Kommentaren erwähnt, können Sie immer noch boost::blank
in Boost finden, was wahrscheinlich am ehesten der Klasse entspricht, nach der Sie suchen. Wenn eine solche Klasse in der Standardbibliothek existiert, glaube ich nicht, dass es so viele Bibliotheken von Drittanbietern geben würde, die ihre eigenen struct empty {}
definieren.
Wenn Sie wollen, ist nur eine Klasse ohne Datenelemente und die kleinstmögliche Größe - kann nicht kleiner als 1 sein - (und möglicherweise von der leeren Basisoptimierung profitieren), können Sie immer noch verwenden. Es wird tatsächlich für genau diesen Zweck (leere Basisoptimierung) bei der Implementierung einiger Klassen in libstdC++ verwendet.
Wenn Sie sicher std::tuple<>
wirklich machen wollen, ist eine leere Klasse:
#include <iostream>
#include <tuple>
#include <type_traits>
int main()
{
// prints 1
std::cout << std::is_empty< std::tuple<> >::value;
}
Nach bestem Wissen und Gewissen, nein:
Es wäre die folgende Art und Weise definiert werden. –
Möchten Sie eine Struktur, die nur keine Datenelemente (also eine Größe von 1) oder eine wirklich leere Struktur haben? – kennytm
Vielleicht 'std :: tuple <>'? – jogojapan