В общем, я пытаюсь использовать std :: variant для создания декларативного типа union enum, который мне нужен для описания местоположения в списке (UITableView/UICollectionView et.al) ,swifty object-C++ using std :: variant
В Swift это именно то, что мне нужно сделать:
enum Location {
case Header
case Footer
case Index(NSIndexPath)
}
Мой API либо позволяет вызова с «заголовком» Расположение (любое сочетание раздела и строки 0), в сноске (и комбинации раздела и номер динамической строки, который изменяется в соответствии с разделом) или конкретный путь индекса.
В C++ я считаю, что есть std::variant
http://en.cppreference.com/w/cpp/utility/variant, который позволяет такое поведение:
Мне нужно сделать это в Objective-C++, но получаю ошибки компилятора
enum class Location {
Header,
Footer
};
std::variant<Location,Index> location ; (NSIndexPath *)
Когда я пытаюсь включить #include (or #import) <variant>
я получаю ошибка компилятора, которая variant file not found
в XCode.
Любой способ сделать это?
'std :: variant' - это функция C++ 17, которая может не поддерживаться используемым вами компилятором. –
Я приму ваш ответ, если вы захотите –