Standard library types supported by CppBind¶
This section covers all C++ standard data types and corresponding examples supported by CppBind.
| C++ Data Type | Kotlin Data Type | Swift Data Type | Python Data Type | 
|---|---|---|---|
std::string | 
String | 
String | 
str | 
std::string_view | 
String | 
String | 
str | 
std::vector<T> | 
List<T> | 
Array<T> | 
List[T] | 
std::array<T, Size> | 
List<T> | 
Array<T> | 
List[T] | 
std::map<T1, T2> | 
Map<T1, T2> | 
Dictionary<T1, T2> | 
Dict[T1, T2] | 
std::unordered_map<T1, T2> | 
Map<T1, T2> | 
Dictionary<T1, T2> | 
Dict[T1, T2] | 
std::shared_ptr<T> | 
T | 
T | 
T | 
std::pair<T1, T2> | 
Pair<T1, T2> | 
(T1, T2) | 
Tuple[T1, T2] | 
std::optional<T> | 
T? | 
T? | 
T? | 
std::span<T> | 
List<T> | 
Array<T> | 
Not Supported | 
std::function<R(Args...)> | 
Not Supported | Not Supported | Callable[[*Args], R] | 
Note
During standard data types conversion CppBind copies original data to the target language.
Note
In case of std::optional we are using type specific structures in Swift
to send the data to the target language. See CppBindOptional* structures in src/cppbind/config/std_helpers/swift/cxx/c_helpers.h
Examples
You can find standard data types examples on examples/primitives/cxx/stl_types and examples/primitives/cxx/containers directories.
  
    
      Last update:
      December 1, 2022