|
CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
|
Forward declaration of HashSet class. More...
#include <hashset.h>
Public Types | |
| using | ThisType = System::Collections::Generic::HashSet< T > |
| Self type. More... | |
| using | BaseType = BaseSet< T, std::unordered_set< T, EqualityComparerHashAdapter< T >, EqualityComparerAdapter< T >, typename System::Details::CollectionHelpers::ContainerPointerMode< T >::allocator_type > > |
| Base type. More... | |
| using | ThisPtr = SharedPtr< ThisType > |
| Pointer type. More... | |
Public Types inherited from System::Object | |
| typedef SmartPtr< Object > | ptr |
| Alias for smart pointer type. More... | |
Public Types inherited from System::Collections::Generic::ICollection< T > | |
| typedef T | ValueType |
| Value type name. More... | |
| typedef ICollection< T > | ThisType |
| Collection type name. More... | |
Public Types inherited from System::Collections::Generic::IEnumerable< T > | |
| typedef IEnumerator< T > | IEnumeratorType |
| Enumerator type. More... | |
| using | ValueType = T |
| using | iterator = System::Details::VirtualizedIterator< T > |
| Iterator type. More... | |
| using | const_iterator = System::Details::VirtualizedConstIterator< T > |
| Const iterator type. More... | |
| using | virtualized_iterator = System::Details::VirtualizedIteratorBase< T > |
| Inner iterator base type. More... | |
| using | virtualized_iterator_element = T |
| Inner iterator element type. More... | |
Public Member Functions | |
| HashSet () | |
| RTTI information. More... | |
| HashSet (int capacity) | |
| Creates empty set with specified capacity. More... | |
| HashSet (const SharedPtr< IEqualityComparer< T > > &comparer) | |
| Creates empty set that uses the specified equality comparer. More... | |
| HashSet (const SharedPtr< IEnumerable< T > > &items) | |
| Creates hashset based on enumerable values. More... | |
Public Member Functions inherited from System::Object | |
| Object () | |
| Creates object. Initializes all internal data structures. More... | |
| virtual | ~Object () |
| Destroys object. Frees all internal data structures. More... | |
| Object (Object const &x) | |
| Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
| Object & | operator= (Object const &x) |
| Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
| Object * | SharedRefAdded () |
| Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
| int | SharedRefRemovedSafe () |
| Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
| int | RemovedSharedRefs (int count) |
| Decreases shared reference count by specified value. More... | |
| Detail::SmartPtrCounter * | WeakRefAdded () |
| Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
| void | WeakRefRemoved () |
| Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
| Detail::SmartPtrCounter * | GetCounter () |
| Gets reference counter data structure associated with the object. More... | |
| int | SharedCount () const |
| Gets current value of shared reference counter. More... | |
| void | Lock () |
| Implements C# lock() statement locking. Call directly or use LockContext sentry object. More... | |
| void | Unlock () |
| Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More... | |
| virtual bool | Equals (ptr obj) |
| Compares objects using C# Object.Equals semantics. More... | |
| virtual int32_t | GetHashCode () const |
| Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More... | |
| virtual String | ToString () const |
| Analog of C# Object.ToString() method. Enables converting custom objects to string. More... | |
| virtual ptr | MemberwiseClone () const |
| Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More... | |
| virtual const TypeInfo & | GetType () const |
| Gets actual type of object. Analog of C# System.Object.GetType() call. More... | |
| virtual bool | Is (const TypeInfo &targetType) const |
| Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More... | |
| virtual void | SetTemplateWeakPtr (uint32_t argument) |
| Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More... | |
| virtual bool | FastCast (const Details::FastRttiBase &helper, void **out_ptr) const |
| For internal purposes only. More... | |
| template<> | |
| bool | ReferenceEquals (String const &str, std::nullptr_t) |
| Specialization of Object::ReferenceEquals for case of string and nullptr. More... | |
| template<> | |
| bool | ReferenceEquals (String const &str1, String const &str2) |
| Specialization of Object::ReferenceEquals for case of strings. More... | |
Public Member Functions inherited from System::Collections::Generic::ICollection< T > | |
| virtual int | get_Count () const =0 |
| Gets number of elements in collection. More... | |
| virtual void | Add (const T &item)=0 |
| Adds element into collection. More... | |
| virtual void | Clear ()=0 |
| Deletes all elements from collection. More... | |
| virtual bool | Contains (const T &item) const =0 |
| Checks if element is present in collection. More... | |
| virtual bool | Remove (const T &item)=0 |
| Deletes element from collection. More... | |
| virtual bool | get_IsReadOnly () const |
| Checks if collection is read only. More... | |
| virtual void | CopyTo (System::ArrayPtr< T > array, int arrayIndex)=0 |
| Copies all collection elements to existing array elements. More... | |
| ICollection & | operator= (ICollection &&) noexcept |
| Move assignment operator. More... | |
| ICollection & | operator= (const ICollection &) |
| Move assignment operator. More... | |
| ICollection () | |
| Default constructor. More... | |
| ICollection (const ICollection &) | |
| Copy constructor. More... | |
| ICollection (ICollection &&) noexcept | |
| Move constructor. More... | |
| virtual | ~ICollection () |
| Destructor. More... | |
| SharedPtr< Object > | get_SyncRoot () const |
| Gets the object the collection is being synchronized through. More... | |
Public Member Functions inherited from System::Collections::Generic::IEnumerable< T > | |
| virtual SharedPtr< IEnumerator< T > > | GetEnumerator ()=0 |
| Gets enumerator. More... | |
| T | LINQ_Aggregate (const Func< T, T, T > &func) |
| Applies an accumulator function over a sequence. More... | |
| T | LINQ_ElementAt (int index) |
| Returns the element at a specified index in a sequence. More... | |
| T | LINQ_ElementAtOrDefault (int index) |
| Returns the element at a specified index in a sequence. More... | |
| T | LINQ_First () |
| Returns the first element of a sequence. More... | |
| T | LINQ_First (const Func< T, bool > &predicate) |
| Returns the first element of a sequence that satisfy the specified condition. More... | |
| T | LINQ_FirstOrDefault () |
| Returns the first element of a sequence, or a default value if the sequence is empty. More... | |
| T | LINQ_FirstOrDefault (std::function< bool(T)> predicate) |
| Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. More... | |
| T | LINQ_Last () |
| Returns the last element of a sequence. More... | |
| T | LINQ_LastOrDefault () |
| Returns the last element of a sequence, or a default value if the sequence is empty. More... | |
| SharedPtr< List< T > > | LINQ_ToList () |
| Creates a List<T> from a sequence. More... | |
| int | LINQ_Count () |
| Returns the number of elements in the sequence (calculated via direct counting). More... | |
| int | LINQ_Count (const Func< T, bool > &predicate) |
| Returns the number of elements in the sequence that satisfy the specified condition. More... | |
| System::ArrayPtr< T > | LINQ_ToArray () |
| Creates an array from a sequence. More... | |
| bool | LINQ_All (std::function< bool(T)> predicate) |
| Determines whether all elements of a sequence satisfy a condition. More... | |
| bool | LINQ_Any () |
| Determines whether a sequence contains any elements. More... | |
| bool | LINQ_Any (std::function< bool(T)> predicate) |
| Determines whether any element of a sequence exists or satisfies a condition. More... | |
| SharedPtr< IEnumerable< T > > | LINQ_Where (std::function< bool(T)> predicate) |
| Filters a sequence based on the specified predicate. More... | |
| bool | LINQ_Contains (T value) |
| Determines if a sequence contains a specified value. More... | |
| template<typename ResultType > | |
| SharedPtr< IEnumerable< ResultType > > | LINQ_Cast () |
| Casts the elements to the specified type. More... | |
| template<typename Key > | |
| SharedPtr< Linq::IOrderedEnumerable< T > > | LINQ_OrderBy (const Func< T, Key > &keySelector) |
| Sorts the elements of a sequence in ascending order according to the key values selected by keySelector. More... | |
| template<typename Key > | |
| SharedPtr< Linq::IOrderedEnumerable< T > > | LINQ_OrderByDescending (const Func< T, Key > &keySelector) |
| Sorts the elements of a sequence in descending order according to the key values selected by keySelector. More... | |
| template<typename ResultType > | |
| SharedPtr< IEnumerable< ResultType > > | LINQ_OfType () |
| Filters the elements of the sequence based on the specified type. More... | |
| template<typename ResultType > | |
| SharedPtr< IEnumerable< ResultType > > | LINQ_Select (const Func< T, ResultType > &selector) |
| Transforms elements of a sequence. More... | |
| template<typename ResultType > | |
| SharedPtr< IEnumerable< ResultType > > | LINQ_Select (const Func< T, int32_t, ResultType > &selector) |
| Transforms each element of a sequence into a new form by incorporating the element's index. More... | |
| SharedPtr< IEnumerable< T > > | LINQ_Concat (SharedPtr< IEnumerable< T > > sequence) |
| Concatenates two sequences. More... | |
| SharedPtr< IEnumerable< T > > | LINQ_Reverse () |
| Inverts the order of the elements in a sequence. More... | |
| template<typename Key > | |
| System::SharedPtr< IEnumerable< System::SharedPtr< System::Linq::IGrouping< Key, T > > > > | LINQ_GroupBy (System::Func< T, Key > keyPredicate) |
| Groups the elements of a sequence. More... | |
| template<typename ResultType > | |
| SharedPtr< IEnumerable< ResultType > > | LINQ_SelectMany (const Func< T, SharedPtr< IEnumerable< ResultType > > > &selector) |
| Projects each element of a sequence and combines the resulting sequences into one sequence. More... | |
| SharedPtr< IEnumerable< T > > | LINQ_Take (int32_t count) |
| Returns a specified number of contiguous elements from the start of a sequence. More... | |
| template<typename ResultType > | |
| ResultType | LINQ_Min (const Func< T, ResultType > &selector) |
| Invokes a transform function on each element of a generic sequence and returns the minimum resulting value. More... | |
| template<typename ResultType > | |
| ResultType | LINQ_Max (const Func< T, ResultType > &selector) |
| Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. More... | |
| iterator | begin () |
| Gets iterator pointing to the first element (if any) of the collection. This iterator can't be used to change a referenced object because GetEnumerator() returns a copy-object of T. More... | |
| iterator | end () |
| Gets iterator pointing right after the last element (if any) of the collection. This iterator can't be used to change a referenced object because GetEnumerator() returns a copy-object of T. More... | |
| const_iterator | begin () const |
| Gets iterator pointing to the first element (if any) of the const-qualified instance of the collection. More... | |
| const_iterator | end () const |
| Gets iterator pointing right after the last element (if any) of the const-qualified instance of the collection. More... | |
| const_iterator | cbegin () const |
| Gets iterator pointing to the first const-qualified element (if any) of the collection. More... | |
| const_iterator | cend () const |
| Gets iterator pointing right after the last const-qualified element (if any) of the collection. More... | |
| virtual virtualized_iterator * | virtualizeBeginIterator () |
| Gets the implementation of begin iterator for the current container. More... | |
| virtual virtualized_iterator * | virtualizeEndIterator () |
| Gets the implementation of end iterator for the current container. More... | |
| virtual virtualized_iterator * | virtualizeBeginConstIterator () const |
| Gets the implementation of begin const iterator for the current container. More... | |
| virtual virtualized_iterator * | virtualizeEndConstIterator () const |
| Gets the implementation of end const iterator for the current container. More... | |
| template<typename Result > | |
| SharedPtr< IEnumerable< Result > > | LINQ_Cast () |
| template<typename Result > | |
| SharedPtr< IEnumerable< Result > > | LINQ_OfType () |
| template<typename Result > | |
| SharedPtr< IEnumerable< Result > > | LINQ_Select (const Func< Source, Result > &selector) |
| template<typename Result > | |
| SharedPtr< IEnumerable< Result > > | LINQ_Select (const Func< Source, int32_t, Result > &selector) |
| template<typename Key > | |
| SharedPtr< Linq::IOrderedEnumerable< Source > > | LINQ_OrderBy (const Func< Source, Key > &keySelector) |
| template<typename Key > | |
| SharedPtr< Linq::IOrderedEnumerable< Source > > | LINQ_OrderByDescending (const Func< Source, Key > &keySelector) |
| template<typename Key > | |
| SharedPtr< IEnumerable< SharedPtr< System::Linq::IGrouping< Key, Source > > > > | LINQ_GroupBy (System::Func< Source, Key > keyPredicate) |
| template<typename Result > | |
| SharedPtr< IEnumerable< Result > > | LINQ_SelectMany (const Func< Source, SharedPtr< IEnumerable< Result > > > &selector) |
| template<typename ResultType > | |
| ResultType | LINQ_Min (const Func< Source, ResultType > &selector) |
| template<typename ResultType > | |
| ResultType | LINQ_Max (const Func< Source, ResultType > &selector) |
Protected Member Functions | |
| ~HashSet () override | |
| Destructor. More... | |
Protected Member Functions inherited from System::Collections::Generic::IEnumerable< T > | |
| ~IEnumerable () override | |
| Destructor. More... | |
| virtualized_iterator * | GetEnumeratorAsVirtualizedIterator () |
| Gets enumerator instance and prepares it to be used as iterator kernel. More... | |
| virtualized_iterator * | GetEnumeratorAsVirtualizedIterator () const |
| Gets enumerator instance and prepares it to be used as iterator kernel. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from System::Object | |
| static bool | ReferenceEquals (ptr const &objA, ptr const &objB) |
| Compares objects by reference. More... | |
| template<typename T > | |
| static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, T const &objB) |
| Compares objects by reference. More... | |
| template<typename T > | |
| static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, std::nullptr_t) |
| Reference-compares value type object with nullptr. More... | |
| template<typename T1 , typename T2 > | |
| static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
| Compares reference type objects in C# style. More... | |
| template<typename T1 , typename T2 > | |
| static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
| Compares value type objects in C# style. More... | |
| static const TypeInfo & | Type () |
| Implements C# typeof(System.Object) construct. More... | |
| template<> | |
| bool | Equals (float const &objA, float const &objB) |
| Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More... | |
| template<> | |
| bool | Equals (double const &objA, double const &objB) |
| Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More... | |
Forward declaration of HashSet class.
Set implementation based on hashing. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.
| T | Element type. #include "system/array.h"
#include "system/collections/hashset.h"
#include "system/smart_ptr.h"
void PrintValues(const System::SharedPtr<const System::Collections::Generic::IEnumerable<int>> & collection)
{
for (auto item: collection)
{
std::cout << item << ' ';
}
std::cout << std::endl;
}
int main()
{
// Create and fill instances of the HashSet<int> type.
auto set1 = System::MakeObject<System::Collections::Generic::HashSet<int>>();
auto set2 = System::MakeObject<System::Collections::Generic::HashSet<int>>();
for (auto i = 0; i < 10; i++)
{
set1->Add(i);
set2->Add(i * 3);
}
// Print items of the sets.
PrintValues(set1);
PrintValues(set2);
// Copy values of the sets to the array and print values.
auto arr = System::MakeArray<int>(set1->get_Count() + set2->get_Count());
set1->CopyTo(arr, 0);
set2->CopyTo(arr, set1->get_Count());
PrintValues(arr);
return 0;
}
/*
This code example produces the following output:
8 0 1 2 3 4 5 6 7 9
24 0 3 6 9 12 15 18 21 27
8 0 1 2 3 4 5 6 7 9 24 0 3 6 9 12 15 18 21 27
*/
Interface of object providing enumerator on contained elements. Definition: ienumerable.h:25 Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O... Definition: smart_ptr.h:180 |
| using System::Collections::Generic::HashSet< T >::BaseType = BaseSet<T, std::unordered_set<T, EqualityComparerHashAdapter<T>, EqualityComparerAdapter<T>, typename System::Details::CollectionHelpers::ContainerPointerMode<T>::allocator_type> > |
Base type.
| using System::Collections::Generic::HashSet< T >::ThisPtr = SharedPtr<ThisType> |
Pointer type.
| using System::Collections::Generic::HashSet< T >::ThisType = System::Collections::Generic::HashSet<T> |
Self type.
|
inline |
RTTI information.
Creates empty set.
|
inline |
Creates empty set with specified capacity.
|
inline |
Creates empty set that uses the specified equality comparer.
| comparer | Comparer object to associate with hashset. |
|
inline |
Creates hashset based on enumerable values.
|
inlineoverrideprotected |
Destructor.