Pete Olcott
2017-07-03 17:47:30 UTC
I am considering translating a C++ system into C#.
My C++ classes contain other C++ classes and some POD (plain old data) types.
In C# this would be reference types containing reference types and value types.
Before Generics the equivalent of a C++ std::vector was ArrayList.
From what I understand the use of ArrayList has some extra overhead if one is merely trying to create the equivalent of a std::vector<int> and the Generic List<T> eliminates this extra overhead.
Is there any boxing and unboxing overhead when accessing an element of List<int>?
Is there any boxing and unboxing overhead when accessing a value member of a reference type?
Is there any boxing and unboxing overhead when accessing a value member of a reference type contained in a List<T>?
Is there a way to eliminate this boxing and unboxing overhead?
My C++ classes contain other C++ classes and some POD (plain old data) types.
In C# this would be reference types containing reference types and value types.
Before Generics the equivalent of a C++ std::vector was ArrayList.
From what I understand the use of ArrayList has some extra overhead if one is merely trying to create the equivalent of a std::vector<int> and the Generic List<T> eliminates this extra overhead.
Is there any boxing and unboxing overhead when accessing an element of List<int>?
Is there any boxing and unboxing overhead when accessing a value member of a reference type?
Is there any boxing and unboxing overhead when accessing a value member of a reference type contained in a List<T>?
Is there a way to eliminate this boxing and unboxing overhead?
--
(Γ ⊨ _FS A) ≡ (Γ ⊢ _FS A)
(Γ ⊨ _FS A) ≡ (Γ ⊢ _FS A)