00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00047 #ifndef MFCSTL_INCL_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS
00048 #define MFCSTL_INCL_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS
00049
00050 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00051 # define MFCSTL_VER_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS_MAJOR 2
00052 # define MFCSTL_VER_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS_MINOR 0
00053 # define MFCSTL_VER_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS_REVISION 1
00054 # define MFCSTL_VER_MFCSTL_COLLECTIONS_HPP_CARRAY_TRAITS_EDIT 12
00055 #endif
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070 #ifndef MFCSTL_INCL_MFCSTL_HPP_MFCSTL
00071 # include <mfcstl/mfcstl.hpp>
00072 #endif
00073 #if defined(STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT) && \
00074 !defined(MFCSTL_NO_INCLUDE_AFXTEMPL_BY_DEFAULT)
00075 # include <afxtempl.h>
00076 #endif
00077
00078 #ifdef STLSOFT_UNITTEST
00079 # include <stlsoft/meta/is_same_type.hpp>
00080 #endif
00081
00082
00083
00084
00085
00086 #ifndef _MFCSTL_NO_NAMESPACE
00087 # if defined(_STLSOFT_NO_NAMESPACE) || \
00088 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00089
00090 namespace mfcstl
00091 {
00092 # else
00093
00094
00095 namespace stlsoft
00096 {
00097
00098 namespace mfcstl_project
00099 {
00100
00101 # endif
00102 #endif
00103
00104
00105
00106
00107
00108 #ifdef STLSOFT_DOCUMENTATION_SKIP_SECTION
00109
00113 template <ss_typename_param_k C>
00114 struct CArray_traits
00115 {
00117 typedef ???? value_type;
00119 typedef ???? arg_type;
00121 typedef ???? array_type;
00122 };
00123
00124 #else
00125
00126 template <ss_typename_param_k C>
00127 struct CArray_traits;
00128
00129 STLSOFT_TEMPLATE_SPECIALISATION
00130 struct CArray_traits<CByteArray>
00131 {
00132 typedef BYTE value_type;
00133 typedef BYTE arg_type;
00134 typedef CByteArray array_type;
00135 };
00136
00137 STLSOFT_TEMPLATE_SPECIALISATION
00138 struct CArray_traits<CDWordArray>
00139 {
00140 typedef DWORD value_type;
00141 typedef DWORD arg_type;
00142 typedef CDWordArray array_type;
00143 };
00144
00145 STLSOFT_TEMPLATE_SPECIALISATION
00146 struct CArray_traits<CUIntArray>
00147 {
00148 typedef UINT value_type;
00149 typedef UINT arg_type;
00150 typedef CUIntArray array_type;
00151 };
00152
00153 STLSOFT_TEMPLATE_SPECIALISATION
00154 struct CArray_traits<CWordArray>
00155 {
00156 typedef WORD value_type;
00157 typedef WORD arg_type;
00158 typedef CWordArray array_type;
00159 };
00160
00161 STLSOFT_TEMPLATE_SPECIALISATION
00162 struct CArray_traits<CPtrArray>
00163 {
00164 typedef void* value_type;
00165 typedef void* arg_type;
00166 typedef CPtrArray array_type;
00167 };
00168
00169 STLSOFT_TEMPLATE_SPECIALISATION
00170 struct CArray_traits<CObArray>
00171 {
00172 typedef CObject* value_type;
00173 typedef CObject* arg_type;
00174 typedef CObArray array_type;
00175 };
00176
00177 STLSOFT_TEMPLATE_SPECIALISATION
00178 struct CArray_traits<CStringArray>
00179 {
00180 typedef CString value_type;
00181 # if 0
00182 typedef CString const& arg_type;
00183 # else
00184 typedef LPCTSTR arg_type;
00185 # endif
00186 typedef CStringArray array_type;
00187 };
00188
00189 # if defined(__AFXTEMPL_H__) && \
00190 defined(STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT)
00191 template <class V, class A>
00192 struct CArray_traits<CArray<V, A> >
00193 {
00194 typedef V value_type;
00195 typedef A arg_type;
00196 typedef CArray<V, A> array_type;
00197 };
00198 # endif
00199 #endif
00200
00205 template< ss_typename_param_k V
00206 , ss_typename_param_k A
00207 , ss_typename_param_k C
00208 >
00209 struct CArray_specific_traits
00210 {
00211 typedef V value_type;
00212 typedef A arg_type;
00213 typedef C array_type;
00214 };
00215
00217
00218
00219 #ifdef STLSOFT_UNITTEST
00220 # include "./unittest/carray_traits_unittest_.h"
00221 #endif
00222
00223
00224
00225 #ifndef _MFCSTL_NO_NAMESPACE
00226 # if defined(_STLSOFT_NO_NAMESPACE) || \
00227 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00228 }
00229 # else
00230 }
00231 }
00232 # endif
00233 #endif
00234
00235
00236
00237 #endif
00238
00239