Mirror reflection library 0.5.13

mirror/ct_string/default.hpp

Go to the documentation of this file.
00001 
00010 #ifndef MIRROR_CT_STRING_DEFAULT_1105240825_HPP
00011 #define MIRROR_CT_STRING_DEFAULT_1105240825_HPP
00012 
00013 #include <mirror/config.hpp>
00014 #include <mirror/ct_string/basic_string.hpp>
00015 #include <mirror/ct_string/evaluate.hpp>
00016 
00017 MIRROR_NAMESPACE_BEGIN
00018 namespace cts {
00019 
00021 
00026 template <typename CTString>
00027 struct char_type
00028 #ifndef MIRROR_DOCUMENTATION_ONLY
00029  : char_type<typename evaluate<CTString>::type>
00030 { };
00031 #else
00032 {
00034     typedef unspecified_char_type type;
00035 };
00036 #endif
00037 
00039 
00047 template <typename CTString>
00048 struct empty
00049 #ifndef MIRROR_DOCUMENTATION_ONLY
00050  : empty<typename evaluate<CTString>::type>
00051 #else
00052  : BooleanConstantType
00053 #endif
00054 { };
00055 
00057 
00065 template <typename CTString>
00066 struct nonempty
00067 #ifndef MIRROR_DOCUMENTATION_ONLY
00068  : nonempty<typename evaluate<CTString>::type>
00069 #else
00070  : BooleanConstantType
00071 #endif
00072 { };
00073 
00075 
00084 template <typename CTString>
00085 struct size
00086 #ifndef MIRROR_DOCUMENTATION_ONLY
00087  : size<typename evaluate<CTString>::type>
00088 #else
00089  : IntegralConstantType
00090 #endif
00091 { };
00092 
00094 
00103 template <typename CTString>
00104 struct length
00105 #ifndef MIRROR_DOCUMENTATION_ONLY
00106  : length<typename evaluate<CTString>::type>
00107 #else
00108  : IntegralConstantType
00109 #endif
00110 { };
00111 
00113 
00118 template <typename CTString1, typename CTString2>
00119 struct equal
00120 #ifndef MIRROR_DOCUMENTATION_ONLY
00121  : equal<
00122     typename evaluate<CTString1>::type,
00123     typename evaluate<CTString2>::type
00124 >
00125 #else
00126  : BooleanConstantType
00127 #endif
00128 { };
00129 
00131 
00136 template <typename CTString1, typename CTString2>
00137 struct nonequal
00138 #ifndef MIRROR_DOCUMENTATION_ONLY
00139  : nonequal<
00140     typename evaluate<CTString1>::type,
00141     typename evaluate<CTString2>::type
00142 >
00143 #else
00144  : BooleanConstantType
00145 #endif
00146 { };
00147 
00149 
00157 template <typename CTString>
00158 struct front
00159 #ifndef MIRROR_DOCUMENTATION_ONLY
00160  : front<typename evaluate<CTString>::type>
00161 #else
00162  : CharacterConstantType
00163 #endif
00164 { };
00165 
00167 
00176 template <typename CTString>
00177 struct step_front
00178 #ifndef MIRROR_DOCUMENTATION_ONLY
00179  : step_front<typename evaluate<CTString>::type>
00180 { };
00181 #else
00182 {
00184     typedef CompileTimeString type;
00185 };
00186 #endif
00187 
00189 
00194 template <typename ... CTStrings>
00195 struct concat
00196 #ifndef MIRROR_DOCUMENTATION_ONLY
00197  : concat<typename evaluate<CTStrings>::type...>
00198 { };
00199 #else
00200 {
00202     typedef CompileTimeString type;
00203 };
00204 #endif
00205 
00207 
00214 template <typename CTString, typename Length>
00215 struct head
00216 #ifndef MIRROR_DOCUMENTATION_ONLY
00217  : head<
00218     typename evaluate<CTString>::type,
00219     typename Length::type
00220 > { };
00221 #else
00222 {
00224     typedef CompileTimeString type;
00225 };
00226 #endif
00227 
00229 
00237 template <typename CTString, int Length>
00238 struct head_c;
00239 
00241 
00250 template <typename CTString, typename Length>
00251 struct tail
00252 #ifndef MIRROR_DOCUMENTATION_ONLY
00253  : tail<
00254     typename evaluate<CTString>::type,
00255     typename Length::type
00256 > { };
00257 #else
00258 {
00260     typedef CompileTimeString type;
00261 };
00262 #endif
00263 
00265 
00273 template <typename CTString, int Length>
00274 struct tail_c;
00275 
00277 
00285 template <typename CTString1, typename CTString2>
00286 struct find
00287 #ifndef MIRROR_DOCUMENTATION_ONLY
00288  : find<
00289     typename evaluate<CTString1>::type,
00290     typename evaluate<CTString2>::type
00291 > { };
00292 #else
00293 {
00295     typedef CompileTimeString type;
00296 };
00297 #endif
00298 
00300 
00307 template <typename CTString, typename Start, typename Length>
00308 struct slice
00309 #ifndef MIRROR_DOCUMENTATION_ONLY
00310 ;
00311 #else
00312 {
00314     typedef CompileTimeString type;
00315 };
00316 #endif
00317 
00319 
00326 template <typename CTString, int Start, int Length>
00327 struct slice_c;
00328 
00330 
00338 template <typename CTString, typename Length>
00339 struct skip_front
00340 #ifndef MIRROR_DOCUMENTATION_ONLY
00341 ;
00342 #else
00343 {
00345     typedef CompileTimeString type;
00346 };
00347 #endif
00348 
00350 
00358 template <typename CTString, int Count>
00359 struct skip_front_c;
00360 
00362 
00369 template <typename CTString, typename Position>
00370 struct at
00371 #ifndef MIRROR_DOCUMENTATION_ONLY
00372 ;
00373 #else
00374  : CharacterConstantType
00375 { };
00376 #endif
00377 
00379 
00386 template <typename CTString, int Position>
00387 struct at_c;
00388 
00390 
00398 template <typename CTString1, typename CTString2>
00399 struct starts_with
00400 #ifndef MIRROR_DOCUMENTATION_ONLY
00401 ;
00402 #else
00403  : BooleanConstantType
00404 { };
00405 #endif
00406 
00407 
00409 
00417 template <typename CTString1, typename CTString2>
00418 struct ends_with
00419 #ifndef MIRROR_DOCUMENTATION_ONLY
00420 ;
00421 #else
00422  : BooleanConstantType
00423 { };
00424 #endif
00425 
00427 
00434 template <typename CTString1, typename CTString2>
00435 struct contains
00436 #ifndef MIRROR_DOCUMENTATION_ONLY
00437 ;
00438 #else
00439  : BooleanConstantType
00440 { };
00441 #endif
00442 
00444 
00451 template <typename CTString1, typename CTString2>
00452 struct lacks
00453 #ifndef MIRROR_DOCUMENTATION_ONLY
00454 ;
00455 #else
00456  : BooleanConstantType
00457 { };
00458 #endif
00459 
00460 } // namespace cts
00461 MIRROR_NAMESPACE_END
00462 
00463 #endif //include guard
00464 

Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.