00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00023
00035
00036
00037 #ifndef _XST_MEMBER_ACTION_ALIAS_H_INCLUDED_
00038 #define _XST_MEMBER_ACTION_ALIAS_H_INCLUDED_
00039
00040 namespace cttl {
00041
00042 using namespace cttl_impl;
00043
00082 namespace alias {
00083
00084
00085
00086
00087
00100 template< typename LambdaT >
00101 inline
00102 xst_unary_adaptor<
00103 xst_lambda_wrap<
00104 xst_scalar<
00105 xst_member_action<
00106 typename LambdaT::value_T &,
00107 std::mem_fun_t<
00108 void,
00109 typename LambdaT::value_T
00110 >,
00111 void,
00112 void
00113 >
00114 >
00115 >
00116 ,
00117 xst_dereference_policy<
00118 xst_dereference_traits<
00119 typename LambdaT::value_T,
00120 void
00121 >::capacity_,
00122 LambdaT::primitive_id_
00123 >
00124 >
00125 pop(
00126 xst_lambda_wrap< LambdaT >* plambda_
00127 )
00128 {
00129 typedef typename LambdaT::value_T object_T;
00130 typedef void result_T;
00131 typedef xst_unary_adaptor<
00132 xst_lambda_wrap<
00133 xst_scalar<
00134 xst_member_action<
00135 typename LambdaT::value_T &,
00136 std::mem_fun_t<
00137 void,
00138 typename LambdaT::value_T
00139 >,
00140 void,
00141 void
00142 >
00143 >
00144 >
00145 ,
00146 xst_dereference_policy<
00147 xst_dereference_traits<
00148 typename LambdaT::value_T,
00149 void
00150 >::capacity_,
00151 LambdaT::primitive_id_
00152 >
00153 >
00154 xst_adaptor_T;
00155
00156 return xst_adaptor_T( scalar(
00157 #ifdef CTTL_TRACE_DEPOSITS
00158 xst_traced_action(
00159 __LINE__,
00160 "void alias::pop()",
00161 #else
00162 action(
00163 #endif
00164 &plambda_->top( const_scalar( 0 ) ),
00165 ( std::mem_fun_t<
00166 result_T,
00167 object_T
00168 >
00169 ( &object_T::pop )
00170 )
00171 )
00172 ))
00173 ;
00174 }
00175
00176
00177
00178
00179
00193 template< typename LambdaT, typename ArgumentT >
00194 inline
00195 xst_unary_adaptor<
00196 xst_lambda_wrap<
00197 xst_scalar<
00198 xst_member_action<
00199 typename LambdaT::value_T &,
00200 std::mem_fun1_t<
00201 void,
00202 typename LambdaT::value_T,
00203 ArgumentT const&
00204 >,
00205 ArgumentT const&,
00206 void
00207 >
00208 >
00209 >
00210 ,
00211 xst_dereference_policy<
00212 xst_dereference_traits<
00213 typename LambdaT::value_T,
00214 void
00215 >::capacity_,
00216 LambdaT::primitive_id_
00217 >
00218 >
00219 push(
00220 xst_lambda_wrap< LambdaT >* plambda_,
00221 ArgumentT const& arg_
00222 )
00223 {
00224 typedef typename LambdaT::value_T object_T;
00225 typedef void result_T;
00226 typedef xst_unary_adaptor<
00227 xst_lambda_wrap<
00228 xst_scalar<
00229 xst_member_action<
00230 typename LambdaT::value_T &,
00231 std::mem_fun1_t<
00232 void,
00233 typename LambdaT::value_T,
00234 ArgumentT const&
00235 >,
00236 ArgumentT const&,
00237 void
00238 >
00239 >
00240 >
00241 ,
00242 xst_dereference_policy<
00243 xst_dereference_traits<
00244 typename LambdaT::value_T,
00245 void
00246 >::capacity_,
00247 LambdaT::primitive_id_
00248 >
00249 >
00250 xst_adaptor_T;
00251
00252 return xst_adaptor_T( scalar(
00253 #ifdef CTTL_TRACE_DEPOSITS
00254 xst_traced_action(
00255 __LINE__,
00256 "void alias::push(value_type const&)",
00257 #else
00258 action(
00259 #endif
00260 &plambda_->top( const_scalar( 0 ) ),
00261 ( std::mem_fun1_t<
00262 result_T,
00263 object_T,
00264 ArgumentT const&
00265 >
00266 ( &object_T::push )
00267 ),
00268 arg_
00269 )
00270 ))
00271 ;
00272 }
00273
00274
00275
00276
00277
00290 template< typename LambdaT >
00291 inline
00292 xst_unary_adaptor<
00293 xst_lambda_wrap<
00294 xst_scalar<
00295 xst_member_action<
00296 typename LambdaT::value_T &,
00297 std::mem_fun_t<
00298 typename LambdaT::value_T::value_type&,
00299 typename LambdaT::value_T
00300 >,
00301 void,
00302 typename LambdaT::value_T::value_type&
00303 >
00304 >
00305 >
00306 ,
00307 xst_dereference_policy<
00308 xst_dereference_traits<
00309 typename LambdaT::value_T,
00310 typename LambdaT::value_T::value_type&
00311 >::capacity_,
00312 LambdaT::primitive_id_
00313 >
00314 >
00315 top(
00316 xst_lambda_wrap< LambdaT >* plambda_
00317 )
00318 {
00319 typedef typename LambdaT::value_T object_T;
00320 typedef typename LambdaT::value_T::value_type& result_T;
00321 typedef xst_unary_adaptor<
00322 xst_lambda_wrap<
00323 xst_scalar<
00324 xst_member_action<
00325 typename LambdaT::value_T &,
00326 std::mem_fun_t<
00327 typename LambdaT::value_T::value_type&,
00328 typename LambdaT::value_T
00329 >,
00330 void,
00331 typename LambdaT::value_T::value_type&
00332 >
00333 >
00334 >
00335 ,
00336 xst_dereference_policy<
00337 xst_dereference_traits<
00338 typename LambdaT::value_T,
00339 typename LambdaT::value_T::value_type&
00340 >::capacity_,
00341 LambdaT::primitive_id_
00342 >
00343 >
00344 xst_adaptor_T;
00345
00346 return xst_adaptor_T( scalar(
00347 #ifdef CTTL_TRACE_DEPOSITS
00348 xst_traced_action(
00349 __LINE__,
00350 "X::value_type& alias::top()",
00351 #else
00352 action(
00353 #endif
00354 &plambda_->top( const_scalar( 0 ) ),
00355 ( std::mem_fun_t<
00356 result_T,
00357 object_T
00358 >
00359 ( &object_T::top )
00360 )
00361 )
00362 ))
00363 ;
00364 }
00365
00366
00367
00368
00369 namespace basic_string {
00370
00371
00372
00373
00387 template< typename LambdaT, typename ArgumentT >
00388 inline
00389 xst_unary_adaptor<
00390 xst_lambda_wrap<
00391 xst_scalar<
00392 xst_member_action<
00393 typename LambdaT::value_T &,
00394 std::mem_fun1_t<
00395 void,
00396 typename LambdaT::value_T,
00397 ArgumentT
00398 >,
00399 ArgumentT const&,
00400 void
00401 >
00402 >
00403 >
00404 ,
00405 xst_dereference_policy<
00406 xst_dereference_traits<
00407 typename LambdaT::value_T,
00408 void
00409 >::capacity_,
00410 LambdaT::primitive_id_
00411 >
00412 >
00413 push_back(
00414 xst_lambda_wrap< LambdaT >* plambda_,
00415
00416
00417 ArgumentT const& arg_
00418 )
00419 {
00420 typedef typename LambdaT::value_T object_T;
00421 typedef void result_T;
00422 typedef xst_unary_adaptor<
00423 xst_lambda_wrap<
00424 xst_scalar<
00425 xst_member_action<
00426 typename LambdaT::value_T &,
00427 std::mem_fun1_t<
00428 void,
00429 typename LambdaT::value_T,
00430 ArgumentT
00431 >,
00432 ArgumentT const&,
00433 void
00434 >
00435 >
00436 >
00437 ,
00438 xst_dereference_policy<
00439 xst_dereference_traits<
00440 typename LambdaT::value_T,
00441 void
00442 >::capacity_,
00443 LambdaT::primitive_id_
00444 >
00445 >
00446 xst_adaptor_T;
00447
00448 return xst_adaptor_T( scalar(
00449 #ifdef CTTL_TRACE_DEPOSITS
00450 xst_traced_action(
00451 __LINE__,
00452 "void alias::basic_string::push_back(value_type)",
00453 #else
00454 action(
00455 #endif
00456 &plambda_->top( const_scalar( 0 ) ),
00457 ( std::mem_fun1_t<
00458 result_T,
00459 object_T,
00460 ArgumentT
00461 >
00462 ( &object_T::push_back )
00463 ),
00464 arg_
00465 )
00466 ))
00467 ;
00468 }
00469
00470 }
00471
00472
00473
00474
00475
00489 template< typename LambdaT, typename ArgumentT >
00490 inline
00491 xst_unary_adaptor<
00492 xst_lambda_wrap<
00493 xst_scalar<
00494 xst_member_action<
00495 typename LambdaT::value_T &,
00496 std::mem_fun1_t<
00497 typename LambdaT::value_T&,
00498 typename LambdaT::value_T,
00499 ArgumentT const&
00500 >,
00501 ArgumentT const&,
00502 typename LambdaT::value_T&
00503 >
00504 >
00505 >
00506 ,
00507 xst_dereference_policy<
00508 xst_dereference_traits<
00509 typename LambdaT::value_T,
00510 typename LambdaT::value_T&
00511 >::capacity_,
00512 LambdaT::primitive_id_
00513 >
00514 >
00515 append(
00516 xst_lambda_wrap< LambdaT >* plambda_,
00517 ArgumentT const& arg_
00518 )
00519 {
00520 typedef typename LambdaT::value_T object_T;
00521 typedef typename LambdaT::value_T& result_T;
00522 typedef xst_unary_adaptor<
00523 xst_lambda_wrap<
00524 xst_scalar<
00525 xst_member_action<
00526 typename LambdaT::value_T &,
00527 std::mem_fun1_t<
00528 typename LambdaT::value_T&,
00529 typename LambdaT::value_T,
00530 ArgumentT const&
00531 >,
00532 ArgumentT const&,
00533 typename LambdaT::value_T&
00534 >
00535 >
00536 >
00537 ,
00538 xst_dereference_policy<
00539 xst_dereference_traits<
00540 typename LambdaT::value_T,
00541 typename LambdaT::value_T&
00542 >::capacity_,
00543 LambdaT::primitive_id_
00544 >
00545 >
00546 xst_adaptor_T;
00547
00548 return xst_adaptor_T( scalar(
00549 #ifdef CTTL_TRACE_DEPOSITS
00550 xst_traced_action(
00551 __LINE__,
00552 "X& alias::append(basic_string const&)",
00553 #else
00554 action(
00555 #endif
00556 &plambda_->top( const_scalar( 0 ) ),
00557 ( std::mem_fun1_t<
00558 result_T,
00559 object_T,
00560 ArgumentT const&
00561 >
00562 ( &object_T::append )
00563 ),
00564 arg_
00565 )
00566 ))
00567 ;
00568 }
00569
00570
00571
00572
00573
00587 template< typename LambdaT, typename ArgumentT >
00588 inline
00589 xst_unary_adaptor<
00590 xst_lambda_wrap<
00591 xst_scalar<
00592 xst_member_action<
00593 typename LambdaT::value_T &,
00594 std::mem_fun1_t<
00595 typename LambdaT::value_T&,
00596 typename LambdaT::value_T,
00597 ArgumentT const&
00598 >,
00599 ArgumentT const&,
00600 typename LambdaT::value_T&
00601 >
00602 >
00603 >
00604 ,
00605 xst_dereference_policy<
00606 xst_dereference_traits<
00607 typename LambdaT::value_T,
00608 typename LambdaT::value_T&
00609 >::capacity_,
00610 LambdaT::primitive_id_
00611 >
00612 >
00613 assign(
00614 xst_lambda_wrap< LambdaT >* plambda_,
00615 ArgumentT const& arg_
00616 )
00617 {
00618 typedef typename LambdaT::value_T object_T;
00619 typedef typename LambdaT::value_T& result_T;
00620 typedef xst_unary_adaptor<
00621 xst_lambda_wrap<
00622 xst_scalar<
00623 xst_member_action<
00624 typename LambdaT::value_T &,
00625 std::mem_fun1_t<
00626 typename LambdaT::value_T&,
00627 typename LambdaT::value_T,
00628 ArgumentT const&
00629 >,
00630 ArgumentT const&,
00631 typename LambdaT::value_T&
00632 >
00633 >
00634 >
00635 ,
00636 xst_dereference_policy<
00637 xst_dereference_traits<
00638 typename LambdaT::value_T,
00639 typename LambdaT::value_T&
00640 >::capacity_,
00641 LambdaT::primitive_id_
00642 >
00643 >
00644 xst_adaptor_T;
00645
00646 return xst_adaptor_T( scalar(
00647 #ifdef CTTL_TRACE_DEPOSITS
00648 xst_traced_action(
00649 __LINE__,
00650 "X& alias::assign(basic_string const&)",
00651 #else
00652 action(
00653 #endif
00654 &plambda_->top( const_scalar( 0 ) ),
00655 ( std::mem_fun1_t<
00656 result_T,
00657 object_T,
00658 ArgumentT const&
00659 >
00660 ( &object_T::assign )
00661 ),
00662 arg_
00663 )
00664 ))
00665 ;
00666 }
00667
00668
00669
00670
00671
00685 template< typename LambdaT, typename ArgumentT >
00686 inline
00687 xst_unary_adaptor<
00688 xst_lambda_wrap<
00689 xst_scalar<
00690 xst_member_action<
00691 typename LambdaT::value_T const&,
00692 std::const_mem_fun1_t<
00693 int,
00694 typename LambdaT::value_T,
00695 ArgumentT const&
00696 >,
00697 ArgumentT const&,
00698 int
00699 >
00700 >
00701 >
00702 ,
00703 xst_dereference_policy<
00704 xst_dereference_traits<
00705 typename LambdaT::value_T,
00706 int
00707 >::capacity_,
00708 LambdaT::primitive_id_
00709 >
00710 >
00711 compare(
00712 xst_lambda_wrap< LambdaT > const& lambda_,
00713 ArgumentT const& arg_
00714 )
00715 {
00716 typedef typename LambdaT::value_T object_T;
00717 typedef int result_T;
00718 typedef xst_unary_adaptor<
00719 xst_lambda_wrap<
00720 xst_scalar<
00721 xst_member_action<
00722 typename LambdaT::value_T const&,
00723 std::const_mem_fun1_t<
00724 int,
00725 typename LambdaT::value_T,
00726 ArgumentT const&
00727 >,
00728 ArgumentT const&,
00729 int
00730 >
00731 >
00732 >
00733 ,
00734 xst_dereference_policy<
00735 xst_dereference_traits<
00736 typename LambdaT::value_T,
00737 int
00738 >::capacity_,
00739 LambdaT::primitive_id_
00740 >
00741 >
00742 xst_adaptor_T;
00743
00744 return xst_adaptor_T( scalar(
00745 #ifdef CTTL_TRACE_DEPOSITS
00746 xst_traced_action(
00747 __LINE__,
00748 "int alias::compare(basic_string const&)const",
00749 #else
00750 action(
00751 #endif
00752 lambda_.top( const_scalar( 0 ) ),
00753 ( std::const_mem_fun1_t<
00754 result_T,
00755 object_T,
00756 ArgumentT const&
00757 >
00758 ( &object_T::compare )
00759 ),
00760 arg_
00761 )
00762 ))
00763 ;
00764 }
00765
00766
00767
00768
00769
00782 template< typename LambdaT >
00783 inline
00784 xst_unary_adaptor<
00785 xst_lambda_wrap<
00786 xst_scalar<
00787 xst_member_action<
00788 typename LambdaT::value_T const&,
00789 std::const_mem_fun_t<
00790 typename LambdaT::value_T::size_type,
00791 typename LambdaT::value_T
00792 >,
00793 void,
00794 typename LambdaT::value_T::size_type
00795 >
00796 >
00797 >
00798 ,
00799 xst_dereference_policy<
00800 xst_dereference_traits<
00801 typename LambdaT::value_T,
00802 typename LambdaT::value_T::size_type
00803 >::capacity_,
00804 LambdaT::primitive_id_
00805 >
00806 >
00807 length(
00808 xst_lambda_wrap< LambdaT > const& lambda_
00809 )
00810 {
00811 typedef typename LambdaT::value_T object_T;
00812 typedef typename LambdaT::value_T::size_type result_T;
00813 typedef xst_unary_adaptor<
00814 xst_lambda_wrap<
00815 xst_scalar<
00816 xst_member_action<
00817 typename LambdaT::value_T const&,
00818 std::const_mem_fun_t<
00819 typename LambdaT::value_T::size_type,
00820 typename LambdaT::value_T
00821 >,
00822 void,
00823 typename LambdaT::value_T::size_type
00824 >
00825 >
00826 >
00827 ,
00828 xst_dereference_policy<
00829 xst_dereference_traits<
00830 typename LambdaT::value_T,
00831 typename LambdaT::value_T::size_type
00832 >::capacity_,
00833 LambdaT::primitive_id_
00834 >
00835 >
00836 xst_adaptor_T;
00837
00838 return xst_adaptor_T( scalar(
00839 #ifdef CTTL_TRACE_DEPOSITS
00840 xst_traced_action(
00841 __LINE__,
00842 "X::size_type alias::length()const",
00843 #else
00844 action(
00845 #endif
00846 lambda_.top( const_scalar( 0 ) ),
00847 ( std::const_mem_fun_t<
00848 result_T,
00849 object_T
00850 >
00851 ( &object_T::length )
00852 )
00853 )
00854 ))
00855 ;
00856 }
00857
00858
00859
00860
00861 namespace node {
00862
00863
00864
00865
00878 template< typename LambdaT >
00879 inline
00880 xst_unary_adaptor<
00881 xst_lambda_wrap<
00882 xst_scalar<
00883 xst_member_action<
00884 typename LambdaT::value_T &,
00885 std::mem_fun_t<
00886 size_t,
00887 typename LambdaT::value_T
00888 >,
00889 void,
00890 size_t
00891 >
00892 >
00893 >
00894 ,
00895 xst_dereference_policy<
00896 xst_dereference_traits<
00897 typename LambdaT::value_T,
00898 size_t
00899 >::capacity_,
00900 LambdaT::primitive_id_
00901 >
00902 >
00903 push(
00904 xst_lambda_wrap< LambdaT >* plambda_
00905 )
00906 {
00907 typedef typename LambdaT::value_T object_T;
00908 typedef size_t result_T;
00909 typedef xst_unary_adaptor<
00910 xst_lambda_wrap<
00911 xst_scalar<
00912 xst_member_action<
00913 typename LambdaT::value_T &,
00914 std::mem_fun_t<
00915 size_t,
00916 typename LambdaT::value_T
00917 >,
00918 void,
00919 size_t
00920 >
00921 >
00922 >
00923 ,
00924 xst_dereference_policy<
00925 xst_dereference_traits<
00926 typename LambdaT::value_T,
00927 size_t
00928 >::capacity_,
00929 LambdaT::primitive_id_
00930 >
00931 >
00932 xst_adaptor_T;
00933
00934 return xst_adaptor_T( scalar(
00935 #ifdef CTTL_TRACE_DEPOSITS
00936 xst_traced_action(
00937 __LINE__,
00938 "size_t alias::node::push()",
00939 #else
00940 action(
00941 #endif
00942 &plambda_->top( const_scalar( 0 ) ),
00943 ( std::mem_fun_t<
00944 result_T,
00945 object_T
00946 >
00947 ( &object_T::push )
00948 )
00949 )
00950 ))
00951 ;
00952 }
00953
00954
00955
00956
00957
00970 template< typename LambdaT >
00971 inline
00972 xst_unary_adaptor<
00973 xst_lambda_wrap<
00974 xst_scalar<
00975 xst_member_action<
00976 typename LambdaT::value_T &,
00977 std::mem_fun_t<
00978 size_t,
00979 typename LambdaT::value_T
00980 >,
00981 void,
00982 size_t
00983 >
00984 >
00985 >
00986 ,
00987 xst_dereference_policy<
00988 xst_dereference_traits<
00989 typename LambdaT::value_T,
00990 size_t
00991 >::capacity_,
00992 LambdaT::primitive_id_
00993 >
00994 >
00995 pop(
00996 xst_lambda_wrap< LambdaT >* plambda_
00997 )
00998 {
00999 typedef typename LambdaT::value_T object_T;
01000 typedef size_t result_T;
01001 typedef xst_unary_adaptor<
01002 xst_lambda_wrap<
01003 xst_scalar<
01004 xst_member_action<
01005 typename LambdaT::value_T &,
01006 std::mem_fun_t<
01007 size_t,
01008 typename LambdaT::value_T
01009 >,
01010 void,
01011 size_t
01012 >
01013 >
01014 >
01015 ,
01016 xst_dereference_policy<
01017 xst_dereference_traits<
01018 typename LambdaT::value_T,
01019 size_t
01020 >::capacity_,
01021 LambdaT::primitive_id_
01022 >
01023 >
01024 xst_adaptor_T;
01025
01026 return xst_adaptor_T( scalar(
01027 #ifdef CTTL_TRACE_DEPOSITS
01028 xst_traced_action(
01029 __LINE__,
01030 "size_t alias::node::pop()",
01031 #else
01032 action(
01033 #endif
01034 &plambda_->top( const_scalar( 0 ) ),
01035 ( std::mem_fun_t<
01036 result_T,
01037 object_T
01038 >
01039 ( &object_T::pop )
01040 )
01041 )
01042 ))
01043 ;
01044 }
01045
01046 }
01047
01048
01049
01050
01051
01064 template< typename LambdaT >
01065 inline
01066 xst_unary_adaptor<
01067 xst_lambda_wrap<
01068 xst_scalar<
01069 xst_member_action<
01070 typename LambdaT::value_T const&,
01071 std::const_mem_fun_t<
01072 int,
01073 typename LambdaT::value_T
01074 >,
01075 void,
01076 int
01077 >
01078 >
01079 >
01080 ,
01081 xst_dereference_policy<
01082 xst_dereference_traits<
01083 typename LambdaT::value_T,
01084 int
01085 >::capacity_,
01086 LambdaT::primitive_id_
01087 >
01088 >
01089 identity(
01090 xst_lambda_wrap< LambdaT > const& lambda_
01091 )
01092 {
01093 typedef typename LambdaT::value_T object_T;
01094 typedef int result_T;
01095 typedef xst_unary_adaptor<
01096 xst_lambda_wrap<
01097 xst_scalar<
01098 xst_member_action<
01099 typename LambdaT::value_T const&,
01100 std::const_mem_fun_t<
01101 int,
01102 typename LambdaT::value_T
01103 >,
01104 void,
01105 int
01106 >
01107 >
01108 >
01109 ,
01110 xst_dereference_policy<
01111 xst_dereference_traits<
01112 typename LambdaT::value_T,
01113 int
01114 >::capacity_,
01115 LambdaT::primitive_id_
01116 >
01117 >
01118 xst_adaptor_T;
01119
01120 return xst_adaptor_T( scalar(
01121 #ifdef CTTL_TRACE_DEPOSITS
01122 xst_traced_action(
01123 __LINE__,
01124 "int alias::identity()const",
01125 #else
01126 action(
01127 #endif
01128 lambda_.top( const_scalar( 0 ) ),
01129 ( std::const_mem_fun_t<
01130 result_T,
01131 object_T
01132 >
01133 ( &object_T::identity )
01134 )
01135 )
01136 ))
01137 ;
01138 }
01139
01140
01141
01142
01143
01157 template< typename LambdaT, typename ArgumentT >
01158 inline
01159 xst_unary_adaptor<
01160 xst_lambda_wrap<
01161 xst_scalar<
01162 xst_member_action<
01163 typename LambdaT::value_T &,
01164 std::mem_fun1_t<
01165 int,
01166 typename LambdaT::value_T,
01167 ArgumentT
01168 >,
01169 ArgumentT const&,
01170 int
01171 >
01172 >
01173 >
01174 ,
01175 xst_dereference_policy<
01176 xst_dereference_traits<
01177 typename LambdaT::value_T,
01178 int
01179 >::capacity_,
01180 LambdaT::primitive_id_
01181 >
01182 >
01183 identity(
01184 xst_lambda_wrap< LambdaT >* plambda_,
01185
01186
01187 ArgumentT const& arg_
01188 )
01189 {
01190 typedef typename LambdaT::value_T object_T;
01191 typedef int result_T;
01192 typedef xst_unary_adaptor<
01193 xst_lambda_wrap<
01194 xst_scalar<
01195 xst_member_action<
01196 typename LambdaT::value_T &,
01197 std::mem_fun1_t<
01198 int,
01199 typename LambdaT::value_T,
01200 ArgumentT
01201 >,
01202 ArgumentT const&,
01203 int
01204 >
01205 >
01206 >
01207 ,
01208 xst_dereference_policy<
01209 xst_dereference_traits<
01210 typename LambdaT::value_T,
01211 int
01212 >::capacity_,
01213 LambdaT::primitive_id_
01214 >
01215 >
01216 xst_adaptor_T;
01217
01218 return xst_adaptor_T( scalar(
01219 #ifdef CTTL_TRACE_DEPOSITS
01220 xst_traced_action(
01221 __LINE__,
01222 "int alias::identity(int)",
01223 #else
01224 action(
01225 #endif
01226 &plambda_->top( const_scalar( 0 ) ),
01227 ( std::mem_fun1_t<
01228 result_T,
01229 object_T,
01230 ArgumentT
01231 >
01232 ( &object_T::identity )
01233 ),
01234 arg_
01235 )
01236 ))
01237 ;
01238 }
01239
01240
01241
01242
01243
01256 template< typename LambdaT >
01257 inline
01258 xst_unary_adaptor<
01259 xst_lambda_wrap<
01260 xst_scalar<
01261 xst_member_action<
01262 typename LambdaT::value_T const&,
01263 std::const_mem_fun_t<
01264 size_t,
01265 typename LambdaT::value_T
01266 >,
01267 void,
01268 size_t
01269 >
01270 >
01271 >
01272 ,
01273 xst_dereference_policy<
01274 xst_dereference_traits<
01275 typename LambdaT::value_T,
01276 size_t
01277 >::capacity_,
01278 LambdaT::primitive_id_
01279 >
01280 >
01281 offset(
01282 xst_lambda_wrap< LambdaT > const& lambda_
01283 )
01284 {
01285 typedef typename LambdaT::value_T object_T;
01286 typedef size_t result_T;
01287 typedef xst_unary_adaptor<
01288 xst_lambda_wrap<
01289 xst_scalar<
01290 xst_member_action<
01291 typename LambdaT::value_T const&,
01292 std::const_mem_fun_t<
01293 size_t,
01294 typename LambdaT::value_T
01295 >,
01296 void,
01297 size_t
01298 >
01299 >
01300 >
01301 ,
01302 xst_dereference_policy<
01303 xst_dereference_traits<
01304 typename LambdaT::value_T,
01305 size_t
01306 >::capacity_,
01307 LambdaT::primitive_id_
01308 >
01309 >
01310 xst_adaptor_T;
01311
01312 return xst_adaptor_T( scalar(
01313 #ifdef CTTL_TRACE_DEPOSITS
01314 xst_traced_action(
01315 __LINE__,
01316 "size_t alias::offset()const",
01317 #else
01318 action(
01319 #endif
01320 lambda_.top( const_scalar( 0 ) ),
01321 ( std::const_mem_fun_t<
01322 result_T,
01323 object_T
01324 >
01325 ( &object_T::offset )
01326 )
01327 )
01328 ))
01329 ;
01330 }
01331
01332
01333
01334
01335
01349 template< typename LambdaT, typename ArgumentT >
01350 inline
01351 xst_unary_adaptor<
01352 xst_lambda_wrap<
01353 xst_scalar<
01354 xst_member_action<
01355 typename LambdaT::value_T &,
01356 std::mem_fun1_t<
01357 size_t,
01358 typename LambdaT::value_T,
01359 ArgumentT
01360 >,
01361 ArgumentT const&,
01362 size_t
01363 >
01364 >
01365 >
01366 ,
01367 xst_dereference_policy<
01368 xst_dereference_traits<
01369 typename LambdaT::value_T,
01370 size_t
01371 >::capacity_,
01372 LambdaT::primitive_id_
01373 >
01374 >
01375 offset(
01376 xst_lambda_wrap< LambdaT >* plambda_,
01377
01378
01379 ArgumentT const& arg_
01380 )
01381 {
01382 typedef typename LambdaT::value_T object_T;
01383 typedef size_t result_T;
01384 typedef xst_unary_adaptor<
01385 xst_lambda_wrap<
01386 xst_scalar<
01387 xst_member_action<
01388 typename LambdaT::value_T &,
01389 std::mem_fun1_t<
01390 size_t,
01391 typename LambdaT::value_T,
01392 ArgumentT
01393 >,
01394 ArgumentT const&,
01395 size_t
01396 >
01397 >
01398 >
01399 ,
01400 xst_dereference_policy<
01401 xst_dereference_traits<
01402 typename LambdaT::value_T,
01403 size_t
01404 >::capacity_,
01405 LambdaT::primitive_id_
01406 >
01407 >
01408 xst_adaptor_T;
01409
01410 return xst_adaptor_T( scalar(
01411 #ifdef CTTL_TRACE_DEPOSITS
01412 xst_traced_action(
01413 __LINE__,
01414 "size_t alias::offset(size_t)",
01415 #else
01416 action(
01417 #endif
01418 &plambda_->top( const_scalar( 0 ) ),
01419 ( std::mem_fun1_t<
01420 result_T,
01421 object_T,
01422 ArgumentT
01423 >
01424 ( &object_T::offset )
01425 ),
01426 arg_
01427 )
01428 ))
01429 ;
01430 }
01431
01432
01433
01434
01435
01448 template< typename LambdaT >
01449 inline
01450 xst_unary_adaptor<
01451 xst_lambda_wrap<
01452 xst_scalar<
01453 xst_member_action<
01454 typename LambdaT::value_T const&,
01455 std::const_mem_fun_t<
01456 size_t,
01457 typename LambdaT::value_T
01458 >,
01459 void,
01460 size_t
01461 >
01462 >
01463 >
01464 ,
01465 xst_dereference_policy<
01466 xst_dereference_traits<
01467 typename LambdaT::value_T,
01468 size_t
01469 >::capacity_,
01470 LambdaT::primitive_id_
01471 >
01472 >
01473 line(
01474 xst_lambda_wrap< LambdaT > const& lambda_
01475 )
01476 {
01477 typedef typename LambdaT::value_T object_T;
01478 typedef size_t result_T;
01479 typedef xst_unary_adaptor<
01480 xst_lambda_wrap<
01481 xst_scalar<
01482 xst_member_action<
01483 typename LambdaT::value_T const&,
01484 std::const_mem_fun_t<
01485 size_t,
01486 typename LambdaT::value_T
01487 >,
01488 void,
01489 size_t
01490 >
01491 >
01492 >
01493 ,
01494 xst_dereference_policy<
01495 xst_dereference_traits<
01496 typename LambdaT::value_T,
01497 size_t
01498 >::capacity_,
01499 LambdaT::primitive_id_
01500 >
01501 >
01502 xst_adaptor_T;
01503
01504 return xst_adaptor_T( scalar(
01505 #ifdef CTTL_TRACE_DEPOSITS
01506 xst_traced_action(
01507 __LINE__,
01508 "size_t alias::line()const",
01509 #else
01510 action(
01511 #endif
01512 lambda_.top( const_scalar( 0 ) ),
01513 ( std::const_mem_fun_t<
01514 result_T,
01515 object_T
01516 >
01517 ( &object_T::line )
01518 )
01519 )
01520 ))
01521 ;
01522 }
01523
01524
01525
01526
01527
01541 template< typename LambdaT, typename ArgumentT >
01542 inline
01543 xst_unary_adaptor<
01544 xst_lambda_wrap<
01545 xst_scalar<
01546 xst_member_action<
01547 typename LambdaT::value_T &,
01548 std::mem_fun1_t<
01549 size_t,
01550 typename LambdaT::value_T,
01551 ArgumentT
01552 >,
01553 ArgumentT const&,
01554 size_t
01555 >
01556 >
01557 >
01558 ,
01559 xst_dereference_policy<
01560 xst_dereference_traits<
01561 typename LambdaT::value_T,
01562 size_t
01563 >::capacity_,
01564 LambdaT::primitive_id_
01565 >
01566 >
01567 go_line(
01568 xst_lambda_wrap< LambdaT >* plambda_,
01569
01570
01571 ArgumentT const& arg_
01572 )
01573 {
01574 typedef typename LambdaT::value_T object_T;
01575 typedef size_t result_T;
01576 typedef xst_unary_adaptor<
01577 xst_lambda_wrap<
01578 xst_scalar<
01579 xst_member_action<
01580 typename LambdaT::value_T &,
01581 std::mem_fun1_t<
01582 size_t,
01583 typename LambdaT::value_T,
01584 ArgumentT
01585 >,
01586 ArgumentT const&,
01587 size_t
01588 >
01589 >
01590 >
01591 ,
01592 xst_dereference_policy<
01593 xst_dereference_traits<
01594 typename LambdaT::value_T,
01595 size_t
01596 >::capacity_,
01597 LambdaT::primitive_id_
01598 >
01599 >
01600 xst_adaptor_T;
01601
01602 return xst_adaptor_T( scalar(
01603 #ifdef CTTL_TRACE_DEPOSITS
01604 xst_traced_action(
01605 __LINE__,
01606 "size_t alias::go_line(size_t)",
01607 #else
01608 action(
01609 #endif
01610 &plambda_->top( const_scalar( 0 ) ),
01611 ( std::mem_fun1_t<
01612 result_T,
01613 object_T,
01614 ArgumentT
01615 >
01616 ( &object_T::go_line )
01617 ),
01618 arg_
01619 )
01620 ))
01621 ;
01622 }
01623
01624
01625
01626
01627
01640 template< typename LambdaT >
01641 inline
01642 xst_unary_adaptor<
01643 xst_lambda_wrap<
01644 xst_scalar<
01645 xst_member_action<
01646 typename LambdaT::value_T &,
01647 std::mem_fun_t<
01648 void,
01649 typename LambdaT::value_T
01650 >,
01651 void,
01652 void
01653 >
01654 >
01655 >
01656 ,
01657 xst_dereference_policy<
01658 xst_dereference_traits<
01659 typename LambdaT::value_T,
01660 void
01661 >::capacity_,
01662 LambdaT::primitive_id_
01663 >
01664 >
01665 pop_discard(
01666 xst_lambda_wrap< LambdaT >* plambda_
01667 )
01668 {
01669 typedef typename LambdaT::value_T object_T;
01670 typedef void result_T;
01671 typedef xst_unary_adaptor<
01672 xst_lambda_wrap<
01673 xst_scalar<
01674 xst_member_action<
01675 typename LambdaT::value_T &,
01676 std::mem_fun_t<
01677 void,
01678 typename LambdaT::value_T
01679 >,
01680 void,
01681 void
01682 >
01683 >
01684 >
01685 ,
01686 xst_dereference_policy<
01687 xst_dereference_traits<
01688 typename LambdaT::value_T,
01689 void
01690 >::capacity_,
01691 LambdaT::primitive_id_
01692 >
01693 >
01694 xst_adaptor_T;
01695
01696 return xst_adaptor_T( scalar(
01697 #ifdef CTTL_TRACE_DEPOSITS
01698 xst_traced_action(
01699 __LINE__,
01700 "void alias::pop_discard()",
01701 #else
01702 action(
01703 #endif
01704 &plambda_->top( const_scalar( 0 ) ),
01705 ( std::mem_fun_t<
01706 result_T,
01707 object_T
01708 >
01709 ( &object_T::pop_discard )
01710 )
01711 )
01712 ))
01713 ;
01714 }
01715
01716
01717
01718
01719
01732 template< typename LambdaT >
01733 inline
01734 xst_unary_adaptor<
01735 xst_lambda_wrap<
01736 xst_scalar<
01737 xst_member_action<
01738 typename LambdaT::value_T &,
01739 std::mem_fun_t<
01740 size_t,
01741 typename LambdaT::value_T
01742 >,
01743 void,
01744 size_t
01745 >
01746 >
01747 >
01748 ,
01749 xst_dereference_policy<
01750 xst_dereference_traits<
01751 typename LambdaT::value_T,
01752 size_t
01753 >::capacity_,
01754 LambdaT::primitive_id_
01755 >
01756 >
01757 go_bof(
01758 xst_lambda_wrap< LambdaT >* plambda_
01759 )
01760 {
01761 typedef typename LambdaT::value_T object_T;
01762 typedef size_t result_T;
01763 typedef xst_unary_adaptor<
01764 xst_lambda_wrap<
01765 xst_scalar<
01766 xst_member_action<
01767 typename LambdaT::value_T &,
01768 std::mem_fun_t<
01769 size_t,
01770 typename LambdaT::value_T
01771 >,
01772 void,
01773 size_t
01774 >
01775 >
01776 >
01777 ,
01778 xst_dereference_policy<
01779 xst_dereference_traits<
01780 typename LambdaT::value_T,
01781 size_t
01782 >::capacity_,
01783 LambdaT::primitive_id_
01784 >
01785 >
01786 xst_adaptor_T;
01787
01788 return xst_adaptor_T( scalar(
01789 #ifdef CTTL_TRACE_DEPOSITS
01790 xst_traced_action(
01791 __LINE__,
01792 "size_t alias::go_bof()",
01793 #else
01794 action(
01795 #endif
01796 &plambda_->top( const_scalar( 0 ) ),
01797 ( std::mem_fun_t<
01798 result_T,
01799 object_T
01800 >
01801 ( &object_T::go_bof )
01802 )
01803 )
01804 ))
01805 ;
01806 }
01807
01808
01809
01810
01811
01824 template< typename LambdaT >
01825 inline
01826 xst_unary_adaptor<
01827 xst_lambda_wrap<
01828 xst_scalar<
01829 xst_member_action<
01830 typename LambdaT::value_T &,
01831 std::mem_fun_t<
01832 size_t,
01833 typename LambdaT::value_T
01834 >,
01835 void,
01836 size_t
01837 >
01838 >
01839 >
01840 ,
01841 xst_dereference_policy<
01842 xst_dereference_traits<
01843 typename LambdaT::value_T,
01844 size_t
01845 >::capacity_,
01846 LambdaT::primitive_id_
01847 >
01848 >
01849 go_eof(
01850 xst_lambda_wrap< LambdaT >* plambda_
01851 )
01852 {
01853 typedef typename LambdaT::value_T object_T;
01854 typedef size_t result_T;
01855 typedef xst_unary_adaptor<
01856 xst_lambda_wrap<
01857 xst_scalar<
01858 xst_member_action<
01859 typename LambdaT::value_T &,
01860 std::mem_fun_t<
01861 size_t,
01862 typename LambdaT::value_T
01863 >,
01864 void,
01865 size_t
01866 >
01867 >
01868 >
01869 ,
01870 xst_dereference_policy<
01871 xst_dereference_traits<
01872 typename LambdaT::value_T,
01873 size_t
01874 >::capacity_,
01875 LambdaT::primitive_id_
01876 >
01877 >
01878 xst_adaptor_T;
01879
01880 return xst_adaptor_T( scalar(
01881 #ifdef CTTL_TRACE_DEPOSITS
01882 xst_traced_action(
01883 __LINE__,
01884 "size_t alias::go_eof()",
01885 #else
01886 action(
01887 #endif
01888 &plambda_->top( const_scalar( 0 ) ),
01889 ( std::mem_fun_t<
01890 result_T,
01891 object_T
01892 >
01893 ( &object_T::go_eof )
01894 )
01895 )
01896 ))
01897 ;
01898 }
01899
01900
01901
01902
01903
01916 template< typename LambdaT >
01917 inline
01918 xst_unary_adaptor<
01919 xst_lambda_wrap<
01920 xst_scalar<
01921 xst_member_action<
01922 typename LambdaT::value_T &,
01923 std::mem_fun_t<
01924 size_t,
01925 typename LambdaT::value_T
01926 >,
01927 void,
01928 size_t
01929 >
01930 >
01931 >
01932 ,
01933 xst_dereference_policy<
01934 xst_dereference_traits<
01935 typename LambdaT::value_T,
01936 size_t
01937 >::capacity_,
01938 LambdaT::primitive_id_
01939 >
01940 >
01941 go_line_next(
01942 xst_lambda_wrap< LambdaT >* plambda_
01943 )
01944 {
01945 typedef typename LambdaT::value_T object_T;
01946 typedef size_t result_T;
01947 typedef xst_unary_adaptor<
01948 xst_lambda_wrap<
01949 xst_scalar<
01950 xst_member_action<
01951 typename LambdaT::value_T &,
01952 std::mem_fun_t<
01953 size_t,
01954 typename LambdaT::value_T
01955 >,
01956 void,
01957 size_t
01958 >
01959 >
01960 >
01961 ,
01962 xst_dereference_policy<
01963 xst_dereference_traits<
01964 typename LambdaT::value_T,
01965 size_t
01966 >::capacity_,
01967 LambdaT::primitive_id_
01968 >
01969 >
01970 xst_adaptor_T;
01971
01972 return xst_adaptor_T( scalar(
01973 #ifdef CTTL_TRACE_DEPOSITS
01974 xst_traced_action(
01975 __LINE__,
01976 "size_t alias::go_line_next()",
01977 #else
01978 action(
01979 #endif
01980 &plambda_->top( const_scalar( 0 ) ),
01981 ( std::mem_fun_t<
01982 result_T,
01983 object_T
01984 >
01985 ( &object_T::go_line_next )
01986 )
01987 )
01988 ))
01989 ;
01990 }
01991
01992
01993
01994
01995
02008 template< typename LambdaT >
02009 inline
02010 xst_unary_adaptor<
02011 xst_lambda_wrap<
02012 xst_scalar<
02013 xst_member_action<
02014 typename LambdaT::value_T &,
02015 std::mem_fun_t<
02016 size_t,
02017 typename LambdaT::value_T
02018 >,
02019 void,
02020 size_t
02021 >
02022 >
02023 >
02024 ,
02025 xst_dereference_policy<
02026 xst_dereference_traits<
02027 typename LambdaT::value_T,
02028 size_t
02029 >::capacity_,
02030 LambdaT::primitive_id_
02031 >
02032 >
02033 go_line_previous(
02034 xst_lambda_wrap< LambdaT >* plambda_
02035 )
02036 {
02037 typedef typename LambdaT::value_T object_T;
02038 typedef size_t result_T;
02039 typedef xst_unary_adaptor<
02040 xst_lambda_wrap<
02041 xst_scalar<
02042 xst_member_action<
02043 typename LambdaT::value_T &,
02044 std::mem_fun_t<
02045 size_t,
02046 typename LambdaT::value_T
02047 >,
02048 void,
02049 size_t
02050 >
02051 >
02052 >
02053 ,
02054 xst_dereference_policy<
02055 xst_dereference_traits<
02056 typename LambdaT::value_T,
02057 size_t
02058 >::capacity_,
02059 LambdaT::primitive_id_
02060 >
02061 >
02062 xst_adaptor_T;
02063
02064 return xst_adaptor_T( scalar(
02065 #ifdef CTTL_TRACE_DEPOSITS
02066 xst_traced_action(
02067 __LINE__,
02068 "size_t alias::go_line_previous()",
02069 #else
02070 action(
02071 #endif
02072 &plambda_->top( const_scalar( 0 ) ),
02073 ( std::mem_fun_t<
02074 result_T,
02075 object_T
02076 >
02077 ( &object_T::go_line_previous )
02078 )
02079 )
02080 ))
02081 ;
02082 }
02083
02084
02085
02086
02087
02100 template< typename LambdaT >
02101 inline
02102 xst_unary_adaptor<
02103 xst_lambda_wrap<
02104 xst_scalar<
02105 xst_member_action<
02106 typename LambdaT::value_T &,
02107 std::mem_fun_t<
02108 size_t,
02109 typename LambdaT::value_T
02110 >,
02111 void,
02112 size_t
02113 >
02114 >
02115 >
02116 ,
02117 xst_dereference_policy<
02118 xst_dereference_traits<
02119 typename LambdaT::value_T,
02120 size_t
02121 >::capacity_,
02122 LambdaT::primitive_id_
02123 >
02124 >
02125 go_line_home(
02126 xst_lambda_wrap< LambdaT >* plambda_
02127 )
02128 {
02129 typedef typename LambdaT::value_T object_T;
02130 typedef size_t result_T;
02131 typedef xst_unary_adaptor<
02132 xst_lambda_wrap<
02133 xst_scalar<
02134 xst_member_action<
02135 typename LambdaT::value_T &,
02136 std::mem_fun_t<
02137 size_t,
02138 typename LambdaT::value_T
02139 >,
02140 void,
02141 size_t
02142 >
02143 >
02144 >
02145 ,
02146 xst_dereference_policy<
02147 xst_dereference_traits<
02148 typename LambdaT::value_T,
02149 size_t
02150 >::capacity_,
02151 LambdaT::primitive_id_
02152 >
02153 >
02154 xst_adaptor_T;
02155
02156 return xst_adaptor_T( scalar(
02157 #ifdef CTTL_TRACE_DEPOSITS
02158 xst_traced_action(
02159 __LINE__,
02160 "size_t alias::go_line_home()",
02161 #else
02162 action(
02163 #endif
02164 &plambda_->top( const_scalar( 0 ) ),
02165 ( std::mem_fun_t<
02166 result_T,
02167 object_T
02168 >
02169 ( &object_T::go_line_home )
02170 )
02171 )
02172 ))
02173 ;
02174 }
02175
02176
02177
02178
02179
02193 template< typename LambdaT, typename ArgumentT >
02194 inline
02195 xst_unary_adaptor<
02196 xst_lambda_wrap<
02197 xst_scalar<
02198 xst_member_action<
02199 typename LambdaT::value_T &,
02200 std::mem_fun1_t<
02201 size_t,
02202 typename LambdaT::value_T,
02203 ArgumentT
02204 >,
02205 ArgumentT const&,
02206 size_t
02207 >
02208 >
02209 >
02210 ,
02211 xst_dereference_policy<
02212 xst_dereference_traits<
02213 typename LambdaT::value_T,
02214 size_t
02215 >::capacity_,
02216 LambdaT::primitive_id_
02217 >
02218 >
02219 go_line_home(
02220 xst_lambda_wrap< LambdaT >* plambda_,
02221
02222
02223 ArgumentT const& arg_
02224 )
02225 {
02226 typedef typename LambdaT::value_T object_T;
02227 typedef size_t result_T;
02228 typedef xst_unary_adaptor<
02229 xst_lambda_wrap<
02230 xst_scalar<
02231 xst_member_action<
02232 typename LambdaT::value_T &,
02233 std::mem_fun1_t<
02234 size_t,
02235 typename LambdaT::value_T,
02236 ArgumentT
02237 >,
02238 ArgumentT const&,
02239 size_t
02240 >
02241 >
02242 >
02243 ,
02244 xst_dereference_policy<
02245 xst_dereference_traits<
02246 typename LambdaT::value_T,
02247 size_t
02248 >::capacity_,
02249 LambdaT::primitive_id_
02250 >
02251 >
02252 xst_adaptor_T;
02253
02254 return xst_adaptor_T( scalar(
02255 #ifdef CTTL_TRACE_DEPOSITS
02256 xst_traced_action(
02257 __LINE__,
02258 "size_t alias::go_line_home(size_t)",
02259 #else
02260 action(
02261 #endif
02262 &plambda_->top( const_scalar( 0 ) ),
02263 ( std::mem_fun1_t<
02264 result_T,
02265 object_T,
02266 ArgumentT
02267 >
02268 ( &object_T::go_line_home )
02269 ),
02270 arg_
02271 )
02272 ))
02273 ;
02274 }
02275
02276
02277
02278
02279
02292 template< typename LambdaT >
02293 inline
02294 xst_unary_adaptor<
02295 xst_lambda_wrap<
02296 xst_scalar<
02297 xst_member_action<
02298 typename LambdaT::value_T &,
02299 std::mem_fun_t<
02300 size_t,
02301 typename LambdaT::value_T
02302 >,
02303 void,
02304 size_t
02305 >
02