En général, j'essaie d'utiliser std :: variant pour créer un type déclaratif "union enum" dont j'ai besoin pour décrire un emplacement dans une liste (UITableView/UICollectionView et.al) .swifty objectif-C++ en utilisant std :: variante
Swift ceci est précisément ce que je dois faire:
enum Location {
case Header
case Footer
case Index(NSIndexPath)
}
Mon API permet soit d'appeler l'emplacement « en-tête » (Toute combinaison de l'article et la ligne 0), le pied de page (et la combinaison de l'article et numéro de ligne dynamique qui change selon la section), ou un chemin d'index spécifique.
En C++ Je crois qu'il ya un std::variant
http://en.cppreference.com/w/cpp/utility/variant qui permet ce comportement:
que je dois faire en Objective-C++, mais obtenir des erreurs du compilateur
enum class Location {
Header,
Footer
};
std::variant<Location,Index> location ; (NSIndexPath *)
Lorsque je tente d'inclure #include (or #import) <variant>
je reçois une erreur de compilation variant file not found
dans XCode.
Un moyen de le faire?
'std :: variant' est une fonctionnalité C++ 17 qui n'est peut-être pas supportée par le compilateur que vous utilisez. –
Je vais accepter votre réponse si vous voulez –