Compare commits

..

134 Commits

Author SHA1 Message Date
Beman Dawes 7c93262bf7 Release 1.49.0
[SVN r77094]
2012-02-22 22:08:43 +00:00
Aleksey Gurtovoy 161b05edfb Docs/cosmetic: fix td/th border style in Firefox
[SVN r69117]
2011-02-21 10:00:08 +00:00
Aleksey Gurtovoy 3a4c350910 Closing ticket #816
[SVN r69116]
2011-02-21 09:41:45 +00:00
Eric Niebler 61f3e9cb9a Merged revisions 65167 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r65167 | steven_watanabe | 2010-09-01 09:08:21 -0700 (Wed, 01 Sep 2010) | 1 line
  
  Fix for_each test for C++0x
........


[SVN r66257]
2010-10-29 21:36:38 +00:00
Daniel Walker cad61ebca3 merged [64705] MPL documentation from trunk
[SVN r64743]
2010-08-11 17:04:29 +00:00
Daniel Walker 41ab25a8a1 merged [64144] from trunk
[SVN r64146]
2010-07-19 00:46:31 +00:00
Daniel Walker cbd633b4d0 merged changeset 63726 from trunk
[SVN r63907]
2010-07-12 01:36:38 +00:00
Aleksey Gurtovoy fb038c188d Manually merge changesets @55858 and @58111 from the trunk (svnmerge.py refuses to)
[SVN r63521]
2010-07-02 09:26:29 +00:00
Aleksey Gurtovoy 315ad7d60d Merged revisions 59248 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r59248 | agurtovoy | 2010-01-23 23:45:36 -0600 (Sat, 23 Jan 2010) | 1 line
  
  Fix bitand/bitor conflicts with iso64.h header
........


[SVN r63520]
2010-07-02 08:59:55 +00:00
Aleksey Gurtovoy ea638a4478 Merged revisions 62579 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r62579 | steven_watanabe | 2010-06-08 09:24:55 -0500 (Tue, 08 Jun 2010) | 1 line
  
  Add BOOST_MPL_HAS_XXX_TEMPLATE_DEF.  Fixes #861
........


[SVN r63518]
2010-07-02 08:32:03 +00:00
Eric Niebler e66d77051e Merged revisions 63024 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r63024 | eric_niebler | 2010-06-16 13:57:41 -0400 (Wed, 16 Jun 2010) | 1 line
  
  make mpl::string work with mpl::transform
........


[SVN r63079]
2010-06-18 13:21:30 +00:00
Neil Groves 9e138e28ca Removed workaround for MSVC == 1600 in eval_if.hpp
[SVN r61921]
2010-05-11 21:33:24 +00:00
Neil Groves 75e47b8597 Remove regression introduced by my previous 'fix'
[SVN r61920]
2010-05-11 21:12:26 +00:00
Aleksey Gurtovoy c5621d99cd MPL: merge fix for ticket #1992
[SVN r61591]
2010-04-26 21:31:09 +00:00
Aleksey Gurtovoy 31a2c78a5a MPL: merge fix for ticket #4061
[SVN r61584]
2010-04-26 18:48:26 +00:00
Troy D. Straszheim 62d52d9d8b rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
Aleksey Gurtovoy e6ba4cc17c MPL: merge test for #2042/#3298 from the trunk (thanks to Steven Watanabe for the fix!)
[SVN r55752]
2009-08-24 04:17:30 +00:00
Aleksey Gurtovoy 294dd90076 MPL: merge fix for #2042/#3298 from the trunk (thanks to Steven Watanabe for the fix!)
[SVN r55751]
2009-08-24 04:11:00 +00:00
Aleksey Gurtovoy 15a9930acb MPL: merge fix for #3337 from the trunk (thanks Steven!)
[SVN r55679]
2009-08-20 07:50:16 +00:00
Aleksey Gurtovoy 4f0675cd13 Merge boost/mpl fixes from the trunk
[SVN r55648]
2009-08-18 05:16:53 +00:00
Aleksey Gurtovoy 16dd55a902 Merge libs/mpl from the trunk
[SVN r55647]
2009-08-18 05:00:17 +00:00
Aleksey Gurtovoy b4f37ef70f More MPL refmanual fixes
[SVN r55643]
2009-08-18 01:22:15 +00:00
Aleksey Gurtovoy c40417c2d3 MPL refmanual fixes
[SVN r55641]
2009-08-18 01:03:26 +00:00
Aleksey Gurtovoy 9028f43fc9 MPL refmanual: add forgotten docs
[SVN r55635]
2009-08-17 23:36:52 +00:00
Aleksey Gurtovoy 43d395d050 Updated MPL refmanul docs + new style
[SVN r55624]
2009-08-17 11:30:52 +00:00
Aleksey Gurtovoy e42394d3ec Assign copyright back to Eric (fixing copy & paste error in changeset 55621)
[SVN r55623]
2009-08-17 11:01:40 +00:00
Aleksey Gurtovoy 5442b57228 Assign copyright back to Eric (fixing copy & paste error in changeset 55621)
[SVN r55622]
2009-08-17 10:45:29 +00:00
Aleksey Gurtovoy 0efce8938c MPL refmanul: fix copyrights, move all build files in the _build dir
[SVN r55621]
2009-08-17 10:27:13 +00:00
Eric Niebler 5a2abc4d58 more generic c_str implementation from Mathis Gaunard
[SVN r55377]
2009-08-03 00:24:46 +00:00
Eric Niebler 837a031a0e Merged revisions 55146 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r55146 | eric_niebler | 2009-07-24 10:22:50 -0700 (Fri, 24 Jul 2009) | 1 line
  
  fix bug with signed char
........


[SVN r55206]
2009-07-27 18:39:32 +00:00
Troy D. Straszheim 991277330b Copyrights on CMakeLists.txt to keep them from clogging up the inspect
reports.  This is essentially the same commit as r55095 on the release
branch.



[SVN r55159]
2009-07-26 00:49:56 +00:00
Eric Niebler e1fa211c83 fix bug with signed char
[SVN r55146]
2009-07-24 17:22:50 +00:00
Troy D. Straszheim e5dfdf47ed Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
Steven Watanabe e6024bc6f7 Call clear before checking for the existence of push_back
[SVN r54949]
2009-07-14 16:52:05 +00:00
Steven Watanabe 1ba6d35b4d Fix default implementation of has_push_back and has_push_front
[SVN r54948]
2009-07-14 16:49:45 +00:00
Eric Niebler 4599fe865f Merged revisions 52208,52241,52271,52314-52315,52317,52361,52542,52579 via svnmerge from
https://svn.boost.org/svn/boost/trunk


[SVN r53838]
2009-06-13 01:03:44 +00:00
Aleksey Gurtovoy 78364897a1 Further MPL doc generation fixes
[SVN r53747]
2009-06-08 13:12:50 +00:00
Aleksey Gurtovoy e1c57fa777 More MPL refmanual doc generation fixes
[SVN r53744]
2009-06-08 11:16:27 +00:00
Gennadiy Rozental bade8a503a avoid C style casts
[SVN r53667]
2009-06-06 09:34:12 +00:00
Aleksey Gurtovoy 2d5e02f382 Fix #640 in sources
[SVN r53534]
2009-06-01 12:55:33 +00:00
Aleksey Gurtovoy 4169d45c82 Bring up MPL refmanual docs generation
[SVN r53532]
2009-06-01 11:50:35 +00:00
Hartmut Kaiser 54bf81da35 Fixed a bogus preprocessor directive
[SVN r53189]
2009-05-22 20:07:55 +00:00
Hartmut Kaiser d53111cfc8 Fixed a bogus preprocessor directive
[SVN r53188]
2009-05-22 20:06:55 +00:00
Jeremiah Willcock 14b652ed90 Fixed most tab and min/max issues from trunk inspection report
[SVN r53141]
2009-05-20 19:19:00 +00:00
Eric Niebler 58be5a2bd5 portability patch for sunpro on little-endian platforms
[SVN r52579]
2009-04-24 15:23:40 +00:00
Eric Niebler dfc596a7bf isolate implementation-defined behavior in macros for easier portability
[SVN r52577]
2009-04-23 21:46:30 +00:00
Eric Niebler 9708dbc454 add workaround for sun
[SVN r52542]
2009-04-22 16:36:18 +00:00
Aleksey Gurtovoy cec3e22b63 terminology.rst -> Terminology.rst (step 2)
[SVN r52503]
2009-04-20 08:43:50 +00:00
Aleksey Gurtovoy 81135e4e91 terminology.rst -> Terminology.rst (step 1)
[SVN r52502]
2009-04-20 08:41:04 +00:00
Eric Niebler d88ee00afe saving some additional template instantiations
[SVN r52361]
2009-04-12 23:07:37 +00:00
Eric Niebler 5cac79c3e6 add and document BOOST_MPL_LIMIT_STRING_SIZE and mpl/limits/string.hpp
[SVN r52317]
2009-04-11 06:30:53 +00:00
Eric Niebler 2cf51a12f1 fix off-by-1 errors
[SVN r52315]
2009-04-11 06:07:54 +00:00
Eric Niebler 0ee68a2c76 mpl::string is a bidirectional sequence, not random access; c_str is a separate metafunction, not a class static
[SVN r52314]
2009-04-11 05:48:51 +00:00
Eric Niebler c7025170c7 workaround for msvc-8.0 bug
[SVN r52271]
2009-04-08 21:57:03 +00:00
Eric Niebler bf25909150 msvc-7.1 portability fix, signed/unsigned warning fix
[SVN r52241]
2009-04-07 19:53:53 +00:00
Eric Niebler a96b0e9924 add mpl::char_ and mpl::string, fixes #2905
[SVN r52208]
2009-04-06 06:00:57 +00:00
Aleksey Gurtovoy 98008e8e21 Fix prior's requirements (see http://article.gmane.org/gmane.comp.lib.boost.devel/187753/)
[SVN r52207]
2009-04-06 04:52:19 +00:00
Aleksey Gurtovoy 8513479231 mpl/doc/src/README.txt: expand on 'Install prerequisites' (see http://article.gmane.org/gmane.comp.lib.boost.devel/187592)
[SVN r52206]
2009-04-06 04:28:16 +00:00
Aleksey Gurtovoy 2ab6ebd29b apply2 -> apply_wrap2 (see http://article.gmane.org/gmane.comp.lib.boost.devel/187573)
[SVN r52205]
2009-04-06 02:38:36 +00:00
Aleksey Gurtovoy 83f2c7a600 Fix fold/reverse_fold docs (http://thread.gmane.org/gmane.comp.lib.boost.devel/187366)
[SVN r51791]
2009-03-16 06:28:47 +00:00
Troy D. Straszheim 951004474c merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
Michael A. Jackson 699740a53e Updating dependency information for modularized libraries.
[SVN r49628]
2008-11-07 17:05:27 +00:00
Michael A. Jackson 59b2f369d1 Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
Michael A. Jackson 74bdc378ea Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
Aleksey Gurtovoy 3aca8ba417 Merged revisions 48658 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r48658 | rwgk | 2008-09-07 21:13:41 -0500 (Sun, 07 Sep 2008) | 1 line
  
  mpl/find_if.hpp: MIPSpro 7.41 workaround
........


[SVN r49274]
2008-10-11 07:22:05 +00:00
Aleksey Gurtovoy 638af6028b Merged revisions 49260 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49260 | agurtovoy | 2008-10-10 16:59:29 -0500 (Fri, 10 Oct 2008) | 1 line
  
  has_xxx: Adjust MSVC 7.1/8.0 workaround (ticket #1317)
........


[SVN r49273]
2008-10-11 06:54:06 +00:00
Aleksey Gurtovoy 6ae9e83763 Merged revisions 49246 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49246 | agurtovoy | 2008-10-10 05:48:48 -0500 (Fri, 10 Oct 2008) | 1 line
  
  MPL: regenerate preprocessed headers for BCC (ticket #2345)
........


[SVN r49272]
2008-10-11 06:50:46 +00:00
Aleksey Gurtovoy 3abcd697ff Merged revisions 49245 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49245 | agurtovoy | 2008-10-10 05:23:28 -0500 (Fri, 10 Oct 2008) | 1 line
  
  Okay, it was partially tested, on vector_c only. Restore it conditionally
........


[SVN r49271]
2008-10-11 06:46:00 +00:00
Aleksey Gurtovoy f0c26b3f47 Merged revisions 49244 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49244 | agurtovoy | 2008-10-10 05:11:23 -0500 (Fri, 10 Oct 2008) | 1 line
  
  Fix preprocessed headers generation
........


[SVN r49270]
2008-10-11 06:35:10 +00:00
Aleksey Gurtovoy c49c03ea77 Merged revisions 49241 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49241 | agurtovoy | 2008-10-10 04:24:39 -0500 (Fri, 10 Oct 2008) | 1 line
  
  $Source$ -> $Id$
........


[SVN r49269]
2008-10-11 06:30:50 +00:00
Aleksey Gurtovoy 1bba6367cc Merged revisions 49240 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49240 | agurtovoy | 2008-10-10 04:21:07 -0500 (Fri, 10 Oct 2008) | 1 line
  
  $Source$ -> $Id$
........


[SVN r49268]
2008-10-11 06:26:17 +00:00
Aleksey Gurtovoy bf864547c1 Merged revisions 49239 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49239 | agurtovoy | 2008-10-10 04:10:26 -0500 (Fri, 10 Oct 2008) | 1 line
  
  $Source$ -> $Id$
........


[SVN r49267]
2008-10-11 06:19:02 +00:00
Aleksey Gurtovoy 5980a45b30 Merged revisions 49228 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r49228 | nmusatti | 2008-10-09 17:06:06 -0500 (Thu, 09 Oct 2008) | 1 line
  
  Applied patch from ticket #2345
........


[SVN r49266]
2008-10-11 06:06:10 +00:00
Aleksey Gurtovoy afbaa1252e has_xxx: Adjust MSVC 7.1/8.0 workaround (ticket #1317)
[SVN r49260]
2008-10-10 21:59:29 +00:00
Daniel James 240607a350 Merge the mpl fixes for gcc 4.4. (But not the python ones). Refs #2069.
Merged revisions 48960 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r48960 | rwgk | 2008-09-25 05:49:24 +0100 (Thu, 25 Sep 2008) | 1 line
  
  boost/python, boost/mpl: gcc 4.4 compatibility (see http://svn.boost.org/trac/boost/ticket/2069)
........


[SVN r49257]
2008-10-10 19:58:46 +00:00
Aleksey Gurtovoy 8e75b0f4ae MPL: regenerate preprocessed headers for BCC (ticket #2345)
[SVN r49246]
2008-10-10 10:48:48 +00:00
Aleksey Gurtovoy 6ed8bf8572 Okay, it was partially tested, on vector_c only. Restore it conditionally
[SVN r49245]
2008-10-10 10:23:28 +00:00
Aleksey Gurtovoy 48f67ece2e Fix preprocessed headers generation
[SVN r49244]
2008-10-10 10:11:23 +00:00
Aleksey Gurtovoy 5f8bfd09a4 Revert changeset 31196 -- the corresponding preprocessed headers has never been regenerated since the change and therefore it has never been properly tested
[SVN r49243]
2008-10-10 09:59:34 +00:00
Aleksey Gurtovoy 7dbbf92d37 $Source$ -> $Id$
[SVN r49241]
2008-10-10 09:24:39 +00:00
Aleksey Gurtovoy a6c47df14c $Source$ -> $Id$
[SVN r49240]
2008-10-10 09:21:07 +00:00
Aleksey Gurtovoy d1197e1f7d $Source$ -> $Id$
[SVN r49239]
2008-10-10 09:10:26 +00:00
Aleksey Gurtovoy 6371d09c89 Test $HeadURL$ keyword substitution
[SVN r49238]
2008-10-10 09:00:11 +00:00
Aleksey Gurtovoy 2d97b44886 Test $Id$ keyword substitution
[SVN r49237]
2008-10-10 08:48:36 +00:00
Aleksey Gurtovoy 56c8b411c9 Test $URL$ keyword substitution
[SVN r49236]
2008-10-10 08:43:45 +00:00
Nicola Musatti 0e43d67c9b Applied patch from ticket #2345
[SVN r49228]
2008-10-09 22:06:06 +00:00
Ralf W. Grosse-Kunstleve 51adb2aa8d boost/python, boost/mpl: gcc 4.4 compatibility (see http://svn.boost.org/trac/boost/ticket/2069)
[SVN r48960]
2008-09-25 04:49:24 +00:00
Ralf W. Grosse-Kunstleve 54b5387eb2 mpl/find_if.hpp: MIPSpro 7.41 workaround
[SVN r48658]
2008-09-08 02:13:41 +00:00
Aleksey Gurtovoy 0b84aa1225 Merge in critical bug fixes from the trunk (r46570, 46546 and 46620)
[SVN r47650]
2008-07-21 08:00:06 +00:00
Aleksey Gurtovoy b953a6b63b Fix redeclaration errors detected by GCC 4.3.0 (ticket #1528)
[SVN r46620]
2008-06-23 02:31:22 +00:00
Aleksey Gurtovoy 5d7d593327 Fix duplicate include guards (ticket #1568)
[SVN r46570]
2008-06-21 02:55:14 +00:00
Aleksey Gurtovoy 8335231e2e Proper (well, better) diagnostics for passing non-sequence types to sequence algoritms/metafunctions, see http://thread.gmane.org/gmane.comp.lib.boost.user/36876
[SVN r46546]
2008-06-20 04:43:41 +00:00
Aleksey Gurtovoy 52f7685342 MPL docs: README, build script, and numerous fixes to bring up docs generation (unfinished)
[SVN r46462]
2008-06-17 21:46:20 +00:00
Dave Abrahams 827aa4828a Work around intel-win-10.0 preprocessor bug
[SVN r43865]
2008-03-25 23:06:50 +00:00
Daniel James 73d2968369 Point links to the pages that used to be in 'more' to the site.
[SVN r43210]
2008-02-10 15:02:17 +00:00
K. Noel Belcourt 159d23ff7a Fixes #640
Corrected the mpl push_front html documentation.



[SVN r42985]
2008-01-26 18:51:28 +00:00
Aleksey Gurtovoy b990fbcd2a map doc clarification (thanks to Larry Evans)
[SVN r42396]
2008-01-01 01:41:32 +00:00
Dave Abrahams 842489b5f2 Added missing copyright/license
[SVN r40862]
2007-11-06 23:39:09 +00:00
Dave Abrahams 4f93f21dcc Merging some of the more obvious changes from RC_1_34_0
[SVN r40714]
2007-11-03 03:25:13 +00:00
Nicola Musatti 00ad56405f Updated to support C++Builder 2007 Update 3 (bcc32 5.9.2)
[SVN r39663]
2007-10-02 20:32:05 +00:00
Boris Gubenko 7775ef9867 add conditionalization for g++ on HP-UX
[SVN r39190]
2007-09-11 16:24:28 +00:00
Vladimir Prus 51deca6bae Update to V2
[SVN r38529]
2007-08-08 19:39:42 +00:00
Vladimir Prus 8509f491e9 Update to V2
[SVN r38528]
2007-08-08 19:38:27 +00:00
Vladimir Prus 925a4f4359 Remove V1 Jamfiles
[SVN r38516]
2007-08-08 19:02:26 +00:00
Aleksey Gurtovoy fa401f0e4d Merge documentation fixes from RC_1_34_0
[SVN r38223]
2007-07-16 02:26:38 +00:00
Aleksey Gurtovoy 7518d7dab3 Ticket #907
[SVN r38169]
2007-07-09 06:41:59 +00:00
Aleksey Gurtovoy d970498445 Add an example that shows use of if_ with dependent entities
[SVN r37810]
2007-05-29 06:59:16 +00:00
Aleksey Gurtovoy b4048c1b75 'set' fixes + more thorough regression tests
[SVN r37335]
2007-04-02 07:42:41 +00:00
Aleksey Gurtovoy 6d0ea17411 Fix BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC (merged from RC_1_34_0)
[SVN r36831]
2007-01-29 07:39:19 +00:00
Aleksey Gurtovoy 9a516fc3c1 Fix syntax errors
[SVN r36251]
2006-12-02 23:45:58 +00:00
Aleksey Gurtovoy 12c4f8e95c Introduce BOOST_MPL_AUX_PP_COUNTER to workaround MSVC 7.0+ issue with __LINE__ and Edit & Continue mode (http://thread.gmane.org/gmane.comp.lib.boost.user/23207/)
[SVN r36250]
2006-12-02 23:42:34 +00:00
Aleksey Gurtovoy ce552c8aaa Add missing import directive
[SVN r36167]
2006-11-23 19:42:01 +00:00
Aleksey Gurtovoy e1fc6f383b Get rid of platform assumptions
[SVN r36166]
2006-11-23 19:41:11 +00:00
Aleksey Gurtovoy f25c106dda Merge Borland 5.8.2 fixes from RC_1_34_0
[SVN r36117]
2006-11-20 18:02:17 +00:00
Dave Abrahams 9ab927ebbd *** empty log message ***
[SVN r36040]
2006-11-14 19:29:49 +00:00
Aleksey Gurtovoy 50ad0eac22 Merge comma fix from RC_1_34_0
[SVN r36001]
2006-11-10 23:16:57 +00:00
Aleksey Gurtovoy 76680cf30e Merge GCC warnings fix from RC_1_34_0
[SVN r35998]
2006-11-10 21:32:25 +00:00
Aleksey Gurtovoy 1e2ecf080c Merge Borland fixes from RC_1_34_0
[SVN r35963]
2006-11-10 00:57:02 +00:00
Aleksey Gurtovoy 28101ddf68 More GCC 4.x workarounds merges from RC_1_34_0
[SVN r35961]
2006-11-10 00:40:43 +00:00
Aleksey Gurtovoy 33e1caa14e Merge vacpp preprocessor fixes from RC_1_34_0
[SVN r35939]
2006-11-09 01:48:15 +00:00
Aleksey Gurtovoy 8c7f8d8a6b Merge vacpp fix from RC_1_34_0
[SVN r35936]
2006-11-09 01:14:10 +00:00
Aleksey Gurtovoy 2cf805d699 Merge fix from RC_1_34_0
[SVN r35935]
2006-11-09 01:12:50 +00:00
Aleksey Gurtovoy a9e4545cd5 Merge vacpp preprocessor fixes from RC_1_34_0
[SVN r35932]
2006-11-09 00:48:44 +00:00
Aleksey Gurtovoy e9184ee375 Merge vacpp MPL asserts config fixes from RC_1_34_0
[SVN r35929]
2006-11-09 00:13:22 +00:00
Aleksey Gurtovoy 335631321f Merge outdated aCC6 workarounds fix from RC_1_34_0
[SVN r35927]
2006-11-08 21:48:32 +00:00
Beman Dawes 911e606005 Add copyright, license
[SVN r35905]
2006-11-07 19:11:57 +00:00
Aleksey Gurtovoy 99c280e3c8 Integrate GCC fixes from RC_1_34_0
[SVN r35896]
2006-11-07 09:03:36 +00:00
Aleksey Gurtovoy 5b3bbab314 transform.rst: fix copy & paste errors (merged from RC_1_34_0)
[SVN r34977]
2006-08-28 06:14:30 +00:00
Aleksey Gurtovoy 3a4b33d399 merge fixes from RC_1_34_0
[SVN r34276]
2006-06-12 07:21:44 +00:00
Tobias Schwinger acedeb11a7 introduces test case for is_sequence< int<0> >
[SVN r33979]
2006-05-16 13:37:14 +00:00
Tobias Schwinger fef0cb1b3c makes begin< int_<0> >::type compile
[SVN r33978]
2006-05-16 13:35:43 +00:00
Aleksey Gurtovoy 19ffdaaad4 Fix copy & paste error
[SVN r33943]
2006-05-05 21:48:40 +00:00
Jaakko Järvi 7ebf2ffd2c Fixing a bug in a g++ workaround
[SVN r33912]
2006-05-03 03:21:36 +00:00
Dave Abrahams f100326cf0 Workarounds for GCC bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26904
[SVN r33505]
2006-03-28 16:12:56 +00:00
1227 changed files with 21818 additions and 8929 deletions
+22 -24
View File
@@ -1,52 +1,50 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual</title>
<meta name="copyright" content="Copyright © Aleksey Gurtovoy and David Abrahams, 2001-2005." />
<meta name="copyright" content="Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<div class="document" id="the-mpl-reference-manual">
<h1 class="title">The MPL Reference Manual</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Copyright:</th>
<td>Copyright © Aleksey Gurtovoy and David Abrahams, 2001-2005.</td></tr>
<tr class="field"><th class="docinfo-name">License:</th><td class="field-body">Distributed under the Boost Software License, Version 1.0. (See
accompanying file <tt class="literal"><span class="pre">LICENSE_1_0.txt</span></tt> or copy at
<a class="reference" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</td>
<td>Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</td></tr>
<tr class="field"><th class="docinfo-name">License:</th><td class="field-body">Distributed under the Boost Software License, Version 1.0. (See
accompanying file <tt class="literal"><span class="pre">LICENSE_1_0.txt</span></tt> or copy at
<a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</td>
</tr>
</tbody>
</table>
<div class="document" id="the-mpl-reference-manual">
<!-- no .. section-numbering:: -->
<!-- TOC copyright: -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./refmanual/sequences.html" id="id322" name="id322">Sequences</a></li>
<li><a class="reference" href="./refmanual/iterators.html" id="id376" name="id376">Iterators</a></li>
<li><a class="reference" href="./refmanual/algorithms.html" id="id388" name="id388">Algorithms</a></li>
<li><a class="reference" href="./refmanual/metafunctions.html" id="id436" name="id436">Metafunctions</a></li>
<li><a class="reference" href="./refmanual/data-types.html" id="id496" name="id496">Data Types</a></li>
<li><a class="reference" href="./refmanual/macros.html" id="id509" name="id509">Macros</a></li>
<li><a class="reference" href="./refmanual/terminology.html" id="id529" name="id529">Terminology</a></li>
<li><a class="reference" href="./refmanual/categorized-index.html" id="id530" name="id530">Categorized Index</a></li>
<li><a class="reference" href="./refmanual/acknowledgements.html" id="id533" name="id533">Acknowledgements</a></li>
<li><a class="reference" href="./refmanual/refmanual_toc.html">Full TOC</a></li>
<li><a class="reference internal" href="./refmanual/sequences.html" id="id1393">Sequences</a></li>
<li><a class="reference internal" href="./refmanual/iterators.html" id="id1448">Iterators</a></li>
<li><a class="reference internal" href="./refmanual/algorithms.html" id="id1460">Algorithms</a></li>
<li><a class="reference internal" href="./refmanual/metafunctions.html" id="id1510">Metafunctions</a></li>
<li><a class="reference internal" href="./refmanual/data-types.html" id="id1572">Data Types</a></li>
<li><a class="reference internal" href="./refmanual/macros.html" id="id1586">Macros</a></li>
<li><a class="reference internal" href="./refmanual/terminology.html" id="id1610">Terminology</a></li>
<li><a class="reference internal" href="./refmanual/categorized-index.html" id="id1611">Categorized Index</a></li>
<li><a class="reference internal" href="./refmanual/acknowledgements.html" id="id1614">Acknowledgements</a></li>
<li><a class="reference internal" href="./refmanual/refmanual_toc.html">Full TOC</a></li>
</ul>
<!-- workaround weird substitution bug (used to work!): -->
<!-- workaround weird substitution bug (works with t's!): -->
<!-- "[*Note:*" instead of "|Note:|" to workaround another subst. bug -->
</div>
<hr class="footer" />
<div class="footer">
Generated on: 2004-11-15 12:15 UTC.
Generated by <a class="reference" href="http://docutils.sourceforge.net/" target="_top">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html" target="_top">reStructuredText</a> source.
<hr class="footer" />
Generated on: 2010-08-09 18:21 UTC.
Generated by <a class="reference external" href="http://docutils.sourceforge.net/" target="_top">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html" target="_top">reStructuredText</a> source.
</div>
</body>
</html>
+31 -32
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: accumulate</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./iteration-algorithms.html" class="navigation-link">Iteration Algorithms</a> / <a href="./accumulate.html" class="navigation-link">accumulate</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="accumulate">
<h1><a class="toc-backref" href="./iteration-algorithms.html#id401" name="accumulate">accumulate</a></h1>
<div class="section" id="accumulate-synopsis">
<h1><a class="toc-backref" href="./iteration-algorithms.html#id1473">accumulate</a></h1>
<div class="section" id="id527">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,36 +27,36 @@ struct <a href="./accumulate.html" class="identifier">accumulate</a>
};
</pre>
</div>
<div class="section" id="accumulate-description">
<div class="section" id="id528">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of the successive application of binary <tt class="literal"><span class="pre">ForwardOp</span></tt> to the
result of the previous <tt class="literal"><span class="pre">ForwardOp</span></tt> invocation (<tt class="literal"><span class="pre">State</span></tt> if it's the first call)
and every element of the sequence in the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;Sequence&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;Sequence&gt;::type</span></tt>) in order.
[<em>Note:</em> <tt class="literal"><span class="pre"><a href="./accumulate.html" class="identifier">accumulate</a></span></tt> is a synonym for <a class="refentry reference" href="./fold.html"><tt class="refentry literal"><span class="pre">fold</span></tt></a><em>end note</em>]</p>
<p>Returns the result of the successive application of binary <tt class="literal"><span class="pre">ForwardOp</span></tt> to the
result of the previous <tt class="literal"><span class="pre">ForwardOp</span></tt> invocation (<tt class="literal"><span class="pre">State</span></tt> if it's the first call)
and every element of the sequence in the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;Sequence&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;Sequence&gt;::type</span></tt>) in order.
[<em>Note:</em> <tt class="literal"><span class="pre"><a href="./accumulate.html" class="identifier">accumulate</a></span></tt> is a synonym for <a class="reference internal" href="./fold.html">fold</a><em>end note</em>]</p>
</div>
<div class="section" id="accumulate-header">
<div class="section" id="id529">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/accumulate.hpp" class="header">boost/mpl/accumulate.hpp</a>&gt;
</pre>
</div>
<div class="section" id="accumulate-parameters">
<div class="section" id="id530">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to iterate.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">State</span></tt></td>
@@ -68,59 +65,61 @@ and every element of the sequence in the range [<tt class="literal"><span class=
application.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">ForwardOp</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>The operation to be executed on forward
traversal.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="accumulate-expression-semantics">
<div class="section" id="id531">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt>, and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt>, and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./accumulate.html" class="identifier">accumulate</a>&lt;s,state,op&gt;::type t;
typedef <a href="./accumulate.html" class="identifier">accumulate</a>&lt;s,state,op&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./fold.html" class="identifier">fold</a>&lt;s,state,op&gt;::type t;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;s,state,op&gt;::type t;
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="accumulate-complexity">
<div class="section" id="id532">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">op</span></tt>.</p>
</div>
<div class="section" id="accumulate-example">
<div class="section" id="id533">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;long,float,short,double,float,long,long double&gt; types;
typedef <a href="./accumulate.html" class="identifier">accumulate</a>&lt;
types
, <a href="./int.html" class="identifier">int_</a>&lt;0&gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_float&lt;_2&gt;,<a href="./next.html" class="identifier">next</a>&lt;_1&gt;,_1 &gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_float&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt;,<a href="./next.html" class="identifier">next</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;,<a href="./placeholders.html" class="identifier">_1</a> &gt;
&gt;::type number_of_floats;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( number_of_floats::value, ==, 4 );
</pre>
</div>
<div class="section" id="accumulate-see-also">
<div class="section" id="id534">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="refentry reference" href="./fold.html"><tt class="refentry literal"><span class="pre">fold</span></tt></a>, <a class="refentry reference" href="./reverse-fold.html"><tt class="refentry literal"><span class="pre">reverse_fold</span></tt></a>, <a class="refentry reference" href="./iter-fold.html"><tt class="refentry literal"><span class="pre">iter_fold</span></tt></a>, <a class="refentry reference" href="./reverse-iter-fold.html"><tt class="refentry literal"><span class="pre">reverse_iter_fold</span></tt></a>, <a class="refentry reference" href="./copy.html"><tt class="refentry literal"><span class="pre">copy</span></tt></a>, <a class="refentry reference" href="./copy-if.html"><tt class="refentry literal"><span class="pre">copy_if</span></tt></a></p>
<!-- modtime: November 10, 2004 04:25:46 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./fold.html">fold</a>, <a class="reference internal" href="./reverse-fold.html">reverse_fold</a>, <a class="reference internal" href="./iter-fold.html">iter_fold</a>, <a class="reference internal" href="./reverse-iter-fold.html">reverse_iter_fold</a>, <a class="reference internal" href="./copy.html">copy</a>, <a class="reference internal" href="./copy-if.html">copy_if</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./reverse-iter-fold.html" class="navigation-link">Prev</a>&nbsp;<a href="./querying-algorithms.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./reverse-iter-fold.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iteration-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+7 -9
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Acknowledgements</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,13 +12,14 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./acknowledgements.html" class="navigation-link">Acknowledgements</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="acknowledgements">
<h1><a class="toc-backref" href="../refmanual.html#id533" name="acknowledgements">Acknowledgements</a></h1>
<a class="target" id="label-acknowledgements" name="label-acknowledgements"></a><p>The format and language of this reference documentation has been greatly influenced by
the SGI's <a class="reference" href="http://www.sgi.com/tech/stl/" target="_top">Standard Template Library Programmer's Guide</a>.</p>
<!-- modtime: November 09, 2004 17:18:37 +0000 -->
<h1><a class="toc-backref" href="../refmanual.html#id1614">Acknowledgements</a></h1>
<p id="label-acknowledgements">The format and language of this reference documentation has been greatly influenced by
the SGI's <a class="reference external" href="http://www.sgi.com/tech/stl/" target="_top">Standard Template Library Programmer's Guide</a>.</p>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./components.html" class="navigation-link">Prev</a>&nbsp;Next</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+42 -41
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: advance</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./iterators.html" class="navigation-link">Iterators</a> / <a href="./iterator-metafunctions.html" class="navigation-link">Iterator Metafunctions</a> / <a href="./advance.html" class="navigation-link">advance</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="advance">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id382" name="advance">advance</a></h1>
<div class="section" id="advance-synopsis">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id1454">advance</a></h1>
<div class="section" id="id403">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,91 +26,94 @@ struct <a href="./advance.html" class="identifier">advance</a>
};
</pre>
</div>
<div class="section" id="advance-description">
<div class="section" id="id404">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Moves <tt class="literal"><span class="pre">Iterator</span></tt> by the distance <tt class="literal"><span class="pre">N</span></tt>. For <a class="reference" href="./bidirectional-iterator.html">bidirectional</a> and
<a class="reference" href="./random-access-iterator.html">random access</a> iterators, the distance may be negative.</p>
<p>Moves <tt class="literal"><span class="pre">Iterator</span></tt> by the distance <tt class="literal"><span class="pre">N</span></tt>. For <a class="reference internal" href="./bidirectional-iterator.html">bidirectional</a> and
<a class="reference internal" href="./random-access-iterator.html">random access</a> iterators, the distance may be negative.</p>
</div>
<div class="section" id="advance-header">
<div class="section" id="id405">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/advance.hpp" class="header">boost/mpl/advance.hpp</a>&gt;
</pre>
</div>
<div class="section" id="advance-parameters">
<div class="section" id="id406">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Iterator</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>An iterator to advance.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">N</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>A distance.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="advance-model-of">
<div class="section" id="id407">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model Of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="advance-expression-semantics">
<div class="section" id="id408">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For a <a class="reference" href="./forward-iterator.html">Forward Iterator</a> <tt class="literal"><span class="pre">iter</span></tt> and arbitrary <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt>:</p>
<p>For a <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a> <tt class="literal"><span class="pre">iter</span></tt> and arbitrary <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./advance.html" class="identifier">advance</a>&lt;iter,n&gt;::type j;
typedef <a href="./advance.html" class="identifier">advance</a>&lt;iter,n&gt;::type j;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./forward-iterator.html">Forward Iterator</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">If <tt class="literal"><span class="pre">Iterator</span></tt> is a <a class="reference" href="./forward-iterator.html">Forward Iterator</a>, <tt class="literal"><span class="pre">n::value</span></tt> must be nonnegative.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">If <tt class="literal"><span class="pre">Iterator</span></tt> is a <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>, <tt class="literal"><span class="pre">n::value</span></tt> must be nonnegative.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to:</p>
<pre class="literal-block">
typedef iter i0;
typedef <a href="./next.html" class="identifier">next</a>&lt;i0&gt;::type i1;
typedef iter i0;
typedef <a href="./next.html" class="identifier">next</a>&lt;i0&gt;::type i1;
<em>...</em>
typedef <a href="./next.html" class="identifier">next</a>&lt;i<em>n-1</em>&gt;::type j;
</pre>
<p>if <tt class="literal"><span class="pre">n::value</span> <span class="pre">&gt;</span> <span class="pre">0</span></tt>, and</p>
<pre class="literal-block">
typedef iter i0;
typedef <a href="./prior.html" class="identifier">prior</a>&lt;i0&gt;::type i1;
typedef iter i0;
typedef <a href="./prior.html" class="identifier">prior</a>&lt;i0&gt;::type i1;
<em>...</em>
typedef <a href="./prior.html" class="identifier">prior</a>&lt;i<em>n-1</em>&gt;::type j;
</pre>
<p class="last">otherwise.</p>
<p>otherwise.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre">j</span></tt> is dereferenceable or past-the-end;
<tt class="literal"><span class="pre"><a href="./distance.html" class="identifier">distance</a>&lt;iter,j&gt;::value</span> <span class="pre">==</span> <span class="pre">n::value</span></tt> if <tt class="literal"><span class="pre">n::value</span> <span class="pre">&gt;</span> <span class="pre">0</span></tt>, and
<tt class="literal"><span class="pre"><a href="./distance.html" class="identifier">distance</a>&lt;j,iter&gt;::value</span> <span class="pre">==</span> <span class="pre">n::value</span></tt> otherwise.</td>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first last"><tt class="literal"><span class="pre">j</span></tt> is dereferenceable or past-the-end;
<tt class="literal"><span class="pre"><a href="./distance.html" class="identifier">distance</a>&lt;iter,j&gt;::value</span> <span class="pre">==</span> <span class="pre">n::value</span></tt> if <tt class="literal"><span class="pre">n::value</span> <span class="pre">&gt;</span> <span class="pre">0</span></tt>, and
<tt class="literal"><span class="pre"><a href="./distance.html" class="identifier">distance</a>&lt;j,iter&gt;::value</span> <span class="pre">==</span> <span class="pre">n::value</span></tt> otherwise.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="advance-complexity">
<div class="section" id="id409">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time if <tt class="literal"><span class="pre">iter</span></tt> is a model of
<a class="reference" href="./random-access-iterator.html">Random Access Iterator</a>, otherwise linear time.</p>
<p>Amortized constant time if <tt class="literal"><span class="pre">iter</span></tt> is a model of
<a class="reference internal" href="./random-access-iterator.html">Random Access Iterator</a>, otherwise linear time.</p>
</div>
<div class="section" id="advance-example">
<div class="section" id="id410">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt; numbers;
@@ -127,15 +127,16 @@ typedef <a href="./advance.html" class="identifier">advance</a>&lt;last,<a href=
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( boost::is_same&lt;i2,first&gt; ));
</pre>
</div>
<div class="section" id="advance-see-also">
<div class="section" id="id411">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a>, <a class="refentry reference" href="./distance.html"><tt class="refentry literal"><span class="pre">distance</span></tt></a>, <a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a></p>
<!-- modtime: November 11, 2004 11:16:39 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a>, <a class="reference internal" href="./distance.html">distance</a>, <a class="reference internal" href="./next.html">next</a></p>
<!-- Iterators/Iterator Metafunctions//distance |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iterator-metafunctions.html" class="navigation-link">Prev</a>&nbsp;<a href="./distance.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./distance.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterator-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+9 -10
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Concepts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,16 +11,18 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserter.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./inserters.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./algorithms-concepts.html" class="navigation-link">Concepts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="algorithms-concepts">
<h1><a class="toc-backref" href="./algorithms.html#id389" name="algorithms-concepts">Concepts</a></h1>
<a class="target" id="label-algorithms-concepts" name="label-algorithms-concepts"></a><!-- Algorithms/Concepts//Inserter -->
<div class="section" id="id453">
<h1><a class="toc-backref" href="./algorithms.html#id1461"><a class="subsection-title" href="#concepts" name="concepts">Concepts</a></a></h1>
<!-- Algorithms/Concepts//Inserter -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./inserter.html" id="id390" name="id390">Inserter</a></li>
<li><a class="reference" href="./reversible-algorithm.html" id="id391" name="id391">Reversible Algorithm</a></li>
<li><a class="reference internal" href="./inserter.html" id="id1462">Inserter</a></li>
<li><a class="reference internal" href="./reversible-algorithm.html" id="id1463">Reversible Algorithm</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserter.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./inserters.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -32
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Algorithms</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,49 +12,50 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="algorithms">
<h1><a class="toc-backref" href="../refmanual.html#id388" name="algorithms">Algorithms</a></h1>
<a class="target" id="label-algorithms" name="label-algorithms"></a><p>The MPL provides a broad range of fundamental algorithms aimed to
satisfy the majority of sequential compile-time data processing
<h1><a class="toc-backref" href="../refmanual.html#id1460">Algorithms</a></h1>
<p id="label-algorithms">The MPL provides a broad range of fundamental algorithms aimed to
satisfy the majority of sequential compile-time data processing
needs. The algorithms include compile-time counterparts
of many of the STL algorithms, iteration algorithms borrowed from
of many of the STL algorithms, iteration algorithms borrowed from
functional programming languages, and more.</p>
<p>Unlike the algorithms in the C++ Standard Library, which operate on
implict <em>iterator ranges</em>, the majority of MPL counterparts take
and return <em>sequences</em>. This derivation is not dictated by the
and return <em>sequences</em>. This derivation is not dictated by the
functional nature of C++ compile-time computations per se, but
rather by a desire to improve general usability of the library,
making programming with compile-time data structures as enjoyable
making programming with compile-time data structures as enjoyable
as possible.</p>
<!-- This can be seen as a further generalization and extension of
<!-- This can be seen as a further generalization and extension of
the STL's conceptual framework. -->
<p>In the spirit of the STL, MPL algorithms are <em>generic</em>, meaning
that they are not tied to particular sequence class
implementations, and can operate on a wide range of arguments as
<p>In the spirit of the STL, MPL algorithms are <em>generic</em>, meaning
that they are not tied to particular sequence class
implementations, and can operate on a wide range of arguments as
long as they satisfy the documented requirements. The requirements
are formulated in terms of concepts. Under the hood,
algorithms are decoupled from concrete sequence
implementations by operating on <a class="reference" href="./iterators.html">Iterators</a>.</p>
<p>All MPL algorithms can be sorted into three
major categories: iteration algorithms, querying algorithms, and
transformation algorithms. The transformation algorithms introduce
an associated <a class="reference" href="./inserter.html">Inserter</a> concept, a rough equivalent for the notion of
<a class="reference" href="http://www.sgi.com/tech/stl/OutputIterator.html" target="_top">Output Iterator</a> in the Standard Library. Moreover, every
transformation algorithm provides a <tt class="literal"><span class="pre">reverse_</span></tt> counterpart,
are formulated in terms of concepts. Under the hood,
algorithms are decoupled from concrete sequence
implementations by operating on <a class="reference internal" href="./iterators.html">Iterators</a>.</p>
<p>All MPL algorithms can be sorted into three
major categories: iteration algorithms, querying algorithms, and
transformation algorithms. The transformation algorithms introduce
an associated <a class="reference internal" href="./inserter.html">Inserter</a> concept, a rough equivalent for the notion of
<a class="reference external" href="http://www.sgi.com/tech/stl/OutputIterator.html" target="_top">Output Iterator</a> in the Standard Library. Moreover, every
transformation algorithm provides a <tt class="literal"><span class="pre">reverse_</span></tt> counterpart,
allowing for a wider range of efficient transformations — a
common functionality documented by the <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>
common functionality documented by the <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>
concept.</p>
<!-- modtime: November 29, 2004 06:33:05 +0000 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./algorithms-concepts.html" id="id389" name="id389">Concepts</a></li>
<li><a class="reference" href="./inserters.html" id="id392" name="id392">Inserters</a></li>
<li><a class="reference" href="./iteration-algorithms.html" id="id396" name="id396">Iteration Algorithms</a></li>
<li><a class="reference" href="./querying-algorithms.html" id="id402" name="id402">Querying Algorithms</a></li>
<li><a class="reference" href="./transformation-algorithms.html" id="id413" name="id413">Transformation Algorithms</a></li>
<li><a class="reference" href="./runtime-algorithms.html" id="id436" name="id436">Runtime Algorithms</a></li>
<li><a class="reference internal" href="./algorithms-concepts.html" id="id1461">Concepts</a></li>
<li><a class="reference internal" href="./inserters.html" id="id1464">Inserters</a></li>
<li><a class="reference internal" href="./iteration-algorithms.html" id="id1468">Iteration Algorithms</a></li>
<li><a class="reference internal" href="./querying-algorithms.html" id="id1474">Querying Algorithms</a></li>
<li><a class="reference internal" href="./transformation-algorithms.html" id="id1485">Transformation Algorithms</a></li>
<li><a class="reference internal" href="./runtime-algorithms.html" id="id1508">Runtime Algorithms</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iterator-category.html" class="navigation-link">Prev</a>&nbsp;<a href="./algorithms-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterators.html" class="navigation-link">Back</a>&nbsp;<a href="./metafunctions.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+29 -30
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: always</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./always.html" class="navigation-link">always</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="always">
<h1><a class="toc-backref" href="./miscellaneous.html#id489" name="always">always</a></h1>
<div class="section" id="always-synopsis">
<h1><a class="toc-backref" href="./miscellaneous.html#id1565">always</a></h1>
<div class="section" id="id1155">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename X
&gt;
struct <a href="./always.html" class="identifier">always</a>
@@ -29,33 +26,33 @@ struct <a href="./always.html" class="identifier">always</a>
};
</pre>
</div>
<div class="section" id="always-description">
<div class="section" id="id1156">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./always.html" class="identifier">always</a>&lt;X&gt;</span></tt> specialization is a variadic <a class="reference" href="./metafunction-class.html">Metafunction Class</a> always returning the
<p><tt class="literal"><span class="pre"><a href="./always.html" class="identifier">always</a>&lt;X&gt;</span></tt> specialization is a variadic <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> always returning the
same type, <tt class="literal"><span class="pre">X</span></tt>, regardless of the number and types of passed arguments.</p>
</div>
<div class="section" id="always-header">
<div class="section" id="id1157">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/always.hpp" class="header">boost/mpl/always.hpp</a>&gt;
</pre>
</div>
<div class="section" id="always-model-of">
<div class="section" id="id1158">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./metafunction-class.html">Metafunction Class</a></p>
<p><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></p>
</div>
<div class="section" id="always-parameters">
<div class="section" id="id1159">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="22%" />
<col width="28%" />
<col width="51%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -66,46 +63,48 @@ same type, <tt class="literal"><span class="pre">X</span></tt>, regardless of th
</tbody>
</table>
</div>
<div class="section" id="always-expression-semantics">
<div class="section" id="id1160">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For an arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./always.html" class="identifier">always</a>&lt;x&gt; f;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./metafunction-class.html">Metafunction Class</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
struct f : <a href="./bind.html" class="identifier">bind</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;_1&gt;, x > {};
struct f : <a href="./bind.html" class="identifier">bind</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;, x > {};
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="always-example">
<div class="section" id="id1161">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./always.html" class="identifier">always</a>&lt;true_&gt; always_true;
typedef <a href="./always.html" class="identifier">always</a>&lt;<a href="./bool.html" class="identifier">true_</a>&gt; always_true;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,false_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,false_,false_ &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,false_,false_,false_ > ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,<a href="./bool.html" class="identifier">false_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,<a href="./bool.html" class="identifier">false_</a>,<a href="./bool.html" class="identifier">false_</a> &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./apply.html" class="identifier">apply</a>&lt; always_true,<a href="./bool.html" class="identifier">false_</a>,<a href="./bool.html" class="identifier">false_</a>,<a href="./bool.html" class="identifier">false_</a> > ));
</pre>
</div>
<div class="section" id="always-see-also">
<div class="section" id="id1162">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./metafunction-class.html">Metafunction Class</a>, <a class="refentry reference" href="./identity.html"><tt class="refentry literal"><span class="pre">identity</span></tt></a>, <a class="refentry reference" href="./bind.html"><tt class="refentry literal"><span class="pre">bind</span></tt></a>, <a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a></p>
<!-- modtime: November 13, 2004 02:52:37 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a>, <a class="reference internal" href="./identity.html">identity</a>, <a class="reference internal" href="./bind.html">bind</a>, <a class="reference internal" href="./apply.html">apply</a></p>
<!-- Metafunctions/Miscellaneous//inherit |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./identity.html" class="navigation-link">Prev</a>&nbsp;<a href="./inherit.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./identity.html" class="navigation-link">Back</a>&nbsp;<a href="./inherit.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -35
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: and_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./logical-operations.html" class="navigation-link">Logical Operations</a> / <a href="./and.html" class="navigation-link">and_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="and">
<h1><a class="toc-backref" href="./logical-operations.html#id476" name="and">and_</a></h1>
<div class="section" id="and-synopsis">
<h1><a class="toc-backref" href="./logical-operations.html#id1550">and_</a></h1>
<div class="section" id="id1068">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename F1
, typename F2
<em>...</em>
@@ -31,54 +28,54 @@ struct <a href="./and.html" class="identifier">and_</a>
};
</pre>
</div>
<div class="section" id="and-description">
<div class="section" id="id1069">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of short-circuit <em>logical and</em> (<tt class="literal"><span class="pre">&amp;&amp;</span></tt>) operation on its arguments.</p>
</div>
<div class="section" id="and-header">
<div class="section" id="id1070">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/and.hpp" class="header">boost/mpl/and.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/logical.hpp" class="header">boost/mpl/logical.hpp</a>&gt;
</pre>
</div>
<div class="section" id="and-parameters">
<div class="section" id="id1071">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">F1</span></tt>, <tt class="literal"><span class="pre">F2</span></tt>,... <tt class="literal"><span class="pre">Fn</span></tt></td>
<td>Nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
<td>Nullary <a class="reference internal" href="./metafunction.html">Metafunction</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="and-expression-semantics">
<div class="section" id="id1072">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For arbitrary nullary <a class="reference" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>,... <tt class="literal"><span class="pre">fn</span></tt>:</p>
<p>For arbitrary nullary <a class="reference internal" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>,... <tt class="literal"><span class="pre">fn</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em>,f<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <tt class="literal"><span class="pre">false_</span></tt> if either of <tt class="literal"><span class="pre">f1::type::value</span></tt>, <tt class="literal"><span class="pre">f2::type::value</span></tt>,...
<tt class="literal"><span class="pre">fn::type::value</span></tt> expressions evaluates to <tt class="literal"><span class="pre">false</span></tt>, and <tt class="literal"><span class="pre">true_</span></tt> otherwise;
guarantees left-to-right evaluation; the operands subsequent to the first
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <tt class="literal"><span class="pre"><a href="./bool.html" class="identifier">false_</a></span></tt> if either of <tt class="literal"><span class="pre">f1::type::value</span></tt>, <tt class="literal"><span class="pre">f2::type::value</span></tt>,...
<tt class="literal"><span class="pre">fn::type::value</span></tt> expressions evaluates to <tt class="literal"><span class="pre">false</span></tt>, and <tt class="literal"><span class="pre"><a href="./bool.html" class="identifier">true_</a></span></tt> otherwise;
guarantees left-to-right evaluation; the operands subsequent to the first
<tt class="literal"><span class="pre">f</span></tt><em>i</em> metafunction that evaluates to <tt class="literal"><span class="pre">false</span></tt> are not evaluated.</td>
</tr>
</tbody>
@@ -87,11 +84,12 @@ guarantees left-to-right evaluation; the operands subsequent to the first
<pre class="literal-block">
typedef <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em>,f<em>n</em>&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -102,28 +100,29 @@ struct r : <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em
</tbody>
</table>
</div>
<div class="section" id="and-example">
<div class="section" id="id1073">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
struct unknown;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; true_,true_ &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,true_ &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; true_,false_ &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,false_ &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,unknown &gt; )); // OK
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,unknown,unknown &gt; )); // OK too
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">true_</a>,<a href="./bool.html" class="identifier">true_</a> &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">false_</a>,<a href="./bool.html" class="identifier">true_</a> &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">true_</a>,<a href="./bool.html" class="identifier">false_</a> &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">false_</a>,<a href="./bool.html" class="identifier">false_</a> &gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">false_</a>,unknown &gt; )); // OK
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; <a href="./bool.html" class="identifier">false_</a>,unknown,unknown &gt; )); // OK too
</pre>
</div>
<div class="section" id="and-see-also">
<div class="section" id="id1074">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./logical-operations.html">Logical Operations</a>, <a class="refentry reference" href="./or.html"><tt class="refentry literal"><span class="pre">or_</span></tt></a>, <a class="refentry reference" href="./not.html"><tt class="refentry literal"><span class="pre">not_</span></tt></a></p>
<!-- modtime: November 10, 2004 04:46:17 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./logical-operations.html">Logical Operations</a>, <a class="reference internal" href="./or.html">or_</a>, <a class="reference internal" href="./not.html">not_</a></p>
<!-- Metafunctions/Logical Operations//or_ |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./or.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./or.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+29 -31
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: apply_wrap</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./invocation.html" class="navigation-link">Invocation</a> / <a href="./apply-wrap.html" class="navigation-link">apply_wrap</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="apply-wrap">
<h1><a class="toc-backref" href="./invocation.html#id452" name="apply-wrap">apply_wrap</a></h1>
<div class="section" id="invocation-apply-synopsis">
<h1><a class="toc-backref" href="./invocation.html#id1526">apply_wrap</a></h1>
<div class="section" id="id894">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename F
&gt;
struct apply_wrap0
@@ -27,7 +24,7 @@ struct apply_wrap0
typedef <em>unspecified</em> type;
};
template&lt;
template&lt;
typename F, typename A1
&gt;
struct apply_wrap1
@@ -37,7 +34,7 @@ struct apply_wrap1
<em>...</em>
template&lt;
template&lt;
typename F, typename A1,<em>...</em> typename An
&gt;
struct <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>
@@ -46,37 +43,37 @@ struct <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>
};
</pre>
</div>
<div class="section" id="invocation-apply-description">
<div class="section" id="id895">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Invokes a <a class="reference" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">F</span></tt> with arguments <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>.</p>
<p>In essence, <tt class="literal"><span class="pre"><a href="./apply-wrap.html" class="identifier">apply_wrap</a></span></tt> forms are nothing more than syntactic wrappers around
<tt class="literal"><span class="pre">F::<a href="./apply.html" class="identifier">apply</a>&lt;A1,...</span> <span class="pre">An&gt;::type</span></tt> / <tt class="literal"><span class="pre">F::<a href="./apply.html" class="identifier">apply</a>::type</span></tt> expressions (hence the name).
They provide a more concise notation and higher portability than their
<p>Invokes a <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">F</span></tt> with arguments <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>.</p>
<p>In essence, <tt class="literal"><span class="pre"><a href="./apply-wrap.html" class="identifier">apply_wrap</a></span></tt> forms are nothing more than syntactic wrappers around
<tt class="literal"><span class="pre">F::<a href="./apply.html" class="identifier">apply</a>&lt;A1,...</span> <span class="pre">An&gt;::type</span></tt> / <tt class="literal"><span class="pre">F::<a href="./apply.html" class="identifier">apply</a>::type</span></tt> expressions (hence the name).
They provide a more concise notation and higher portability than their
underlaying constructs at the cost of an extra template instantiation.</p>
</div>
<div class="section" id="invocation-apply-header">
<div class="section" id="id896">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/apply_wrap.hpp" class="header">boost/mpl/apply_wrap.hpp</a>&gt;
</pre>
</div>
<div class="section" id="invocation-apply-parameters">
<div class="section" id="id897">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">F</span></tt></td>
<td><a class="reference" href="./metafunction-class.html">Metafunction Class</a></td>
<td><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></td>
<td>A metafunction class to invoke.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt></td>
@@ -86,13 +83,13 @@ underlaying constructs at the cost of an extra template instantiation.</p>
</tbody>
</table>
</div>
<div class="section" id="invocation-apply-expression-semantics">
<div class="section" id="id898">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<p>For any <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>&lt;f,a1,<em>...</em>an&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -100,13 +97,13 @@ typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>&
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">n</span> <span class="pre">&gt;</span> <span class="pre">0</span></tt>, equivalent to <tt class="literal"><span class="pre">typedef</span> <span class="pre">f::<a href="./apply.html" class="identifier">apply</a>&lt;a1,...</span> <span class="pre">an&gt;::type</span> <span class="pre">t;</span></tt>,
otherwise equivalent to either <tt class="literal"><span class="pre">typedef</span> <span class="pre">f::<a href="./apply.html" class="identifier">apply</a>::type</span> <span class="pre">t;</span></tt> or
<tt class="literal"><span class="pre">typedef</span> <span class="pre">f::<a href="./apply.html" class="identifier">apply</a>&lt;&gt;::type</span> <span class="pre">t;</span></tt> depending on whether <tt class="literal"><span class="pre">f::<a href="./apply.html" class="identifier">apply</a></span></tt> is
<tt class="literal"><span class="pre">typedef</span> <span class="pre">f::<a href="./apply.html" class="identifier">apply</a>&lt;&gt;::type</span> <span class="pre">t;</span></tt> depending on whether <tt class="literal"><span class="pre">f::<a href="./apply.html" class="identifier">apply</a></span></tt> is
a class or a class template.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="invocation-apply-example">
<div class="section" id="id899">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
struct f0
@@ -116,7 +113,7 @@ struct f0
typedef char type;
};
};
struct g0
{
struct <a href="./apply.html" class="identifier">apply</a> { typedef char type; };
@@ -140,15 +137,16 @@ typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;r3,char&gt; ));
</pre>
</div>
<div class="section" id="invocation-apply-see-also">
<div class="section" id="id900">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./invocation.html">invocation</a>, <a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a>, <a class="refentry reference" href="./lambda.html"><tt class="refentry literal"><span class="pre">lambda</span></tt></a>, <a class="refentry reference" href="./quote.html"><tt class="refentry literal"><span class="pre">quote</span></tt></a>, <a class="refentry reference" href="./bind.html"><tt class="refentry literal"><span class="pre">bind</span></tt></a>, <a class="refentry reference" href="./protect.html"><tt class="refentry literal"><span class="pre">protect</span></tt></a></p>
<!-- modtime: November 10, 2004 04:46:09 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./invocation.html">invocation</a>, <a class="reference internal" href="./apply.html">apply</a>, <a class="reference internal" href="./lambda.html">lambda</a>, <a class="reference internal" href="./quote.html">quote</a>, <a class="reference internal" href="./bind.html">bind</a>, <a class="reference internal" href="./protect.html">protect</a></p>
<!-- Metafunctions/Invocation//unpack_args |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./apply.html" class="navigation-link">Prev</a>&nbsp;<a href="./unpack-args.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./apply.html" class="navigation-link">Back</a>&nbsp;<a href="./unpack-args.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./invocation.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: apply</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./invocation.html" class="navigation-link">Invocation</a> / <a href="./apply.html" class="navigation-link">apply</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="apply">
<h1><a class="toc-backref" href="./invocation.html#id451" name="apply">apply</a></h1>
<div class="section" id="apply-synopsis">
<h1><a class="toc-backref" href="./invocation.html#id1525">apply</a></h1>
<div class="section" id="id887">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename F
&gt;
struct apply0
@@ -27,7 +24,7 @@ struct apply0
typedef <em>unspecified</em> type;
};
template&lt;
template&lt;
typename F, typename A1
&gt;
struct apply1
@@ -37,7 +34,7 @@ struct apply1
<em>...</em>
template&lt;
template&lt;
typename F, typename A1,<em>...</em> typename An
&gt;
struct <a href="./apply.html" class="identifier">apply</a><em>n</em>
@@ -45,7 +42,7 @@ struct <a href="./apply.html" class="identifier">apply</a><em>n</em>
typedef <em>unspecified</em> type;
};
template&lt;
template&lt;
typename F
, typename A1 = <em>unspecified</em>
<em>...</em>
@@ -57,33 +54,33 @@ struct <a href="./apply.html" class="identifier">apply</a>
};
</pre>
</div>
<div class="section" id="apply-description">
<div class="section" id="id888">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Invokes a <a class="reference" href="./metafunction-class.html">Metafunction Class</a> or a <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">F</span></tt> with arguments <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>.</p>
<p>Invokes a <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> or a <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">F</span></tt> with arguments <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>.</p>
</div>
<div class="section" id="apply-header">
<div class="section" id="id889">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/apply.hpp" class="header">boost/mpl/apply.hpp</a>&gt;
</pre>
</div>
<div class="section" id="apply-parameters">
<div class="section" id="id890">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">F</span></tt></td>
<td><a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td><a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>An expression to invoke.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt></td>
@@ -93,14 +90,14 @@ struct <a href="./apply.html" class="identifier">apply</a>
</tbody>
</table>
</div>
<div class="section" id="apply-expression-semantics">
<div class="section" id="id891">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<p>For any <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./apply.html" class="identifier">apply</a><em>n</em>&lt;f,a1,<em>...</em>a<em>n</em>&gt;::type t;
typedef <a href="./apply.html" class="identifier">apply</a>&lt;f,a1,<em>...</em>a<em>n</em>&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -111,7 +108,7 @@ typedef <a href="./apply.html" class="identifier">apply</a>&lt;f,a1,<em>...</em>
</tbody>
</table>
</div>
<div class="section" id="apply-example">
<div class="section" id="id892">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename N1, typename N2 &gt; struct int_plus
@@ -119,22 +116,23 @@ template&lt; typename N1, typename N2 &gt; struct int_plus
{
};
typedef <a href="./apply.html" class="identifier">apply</a>&lt; int_plus&lt;_1,_2&gt;, <a href="./int.html" class="identifier">int_</a>&lt;2&gt;, <a href="./int.html" class="identifier">int_</a>&lt;3&gt; &gt;::type r1;
typedef <a href="./apply.html" class="identifier">apply</a>&lt; int_plus&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt;, <a href="./int.html" class="identifier">int_</a>&lt;2&gt;, <a href="./int.html" class="identifier">int_</a>&lt;3&gt; &gt;::type r1;
typedef <a href="./apply.html" class="identifier">apply</a>&lt; <a href="./quote.html" class="identifier">quote</a><tt class="literal"><span class="pre">2</span></tt>&lt;int_plus&gt;, <a href="./int.html" class="identifier">int_</a>&lt;2&gt;, <a href="./int.html" class="identifier">int_</a>&lt;3&gt; &gt;::type r2;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( r1::value, ==, 5 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( r2::value, ==, 5 );
</pre>
</div>
<div class="section" id="apply-see-also">
<div class="section" id="id893">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="refentry reference" href="./apply-wrap.html"><tt class="refentry literal"><span class="pre">apply_wrap</span></tt></a>, <a class="refentry reference" href="./lambda.html"><tt class="refentry literal"><span class="pre">lambda</span></tt></a>, <a class="refentry reference" href="./quote.html"><tt class="refentry literal"><span class="pre">quote</span></tt></a>, <a class="refentry reference" href="./bind.html"><tt class="refentry literal"><span class="pre">bind</span></tt></a></p>
<!-- modtime: November 10, 2004 04:46:13 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./apply-wrap.html">apply_wrap</a>, <a class="reference internal" href="./lambda.html">lambda</a>, <a class="reference internal" href="./quote.html">quote</a>, <a class="reference internal" href="./bind.html">bind</a></p>
<!-- Metafunctions/Invocation//apply_wrap |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./invocation.html" class="navigation-link">Prev</a>&nbsp;<a href="./apply-wrap.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./apply-wrap.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./invocation.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+23 -25
View File
@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: arg</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./quote.html" class="navigation-link">Prev</a>&nbsp;<a href="./protect.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./quote.html" class="navigation-link">Back</a>&nbsp;<a href="./protect.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument.html" class="navigation-link">Composition and Argument Binding</a> / <a href="./arg.html" class="navigation-link">arg</a></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./quote.html" class="navigation-link">Prev</a>&nbsp;<a href="./protect.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./quote.html" class="navigation-link">Back</a>&nbsp;<a href="./protect.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument-binding.html" class="navigation-link">Composition and Argument Binding</a> / <a href="./arg.html" class="navigation-link">arg</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="arg">
<h1><a class="toc-backref" href="./composition-and-argument.html#id459" name="arg">arg</a></h1>
<div class="section" id="arg-synopsis">
<h1><a class="toc-backref" href="./composition-and-argument-binding.html#id1533">arg</a></h1>
<div class="section" id="id946">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt; int n &gt; struct <a href="./arg.html" class="identifier">arg</a>;
@@ -42,28 +39,28 @@ template&lt;&gt; struct <a href="./arg.html" class="identifier">arg</a>&lt;<em>n
};
</pre>
</div>
<div class="section" id="arg-description">
<div class="section" id="id947">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./arg.html" class="identifier">arg</a>&lt;n&gt;</span></tt> specialization is a <a class="reference" href="./metafunction-class.html">Metafunction Class</a> that return the <tt class="literal"><span class="pre">n</span></tt>th of its arguments.</p>
<p><tt class="literal"><span class="pre"><a href="./arg.html" class="identifier">arg</a>&lt;n&gt;</span></tt> specialization is a <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> that return the <tt class="literal"><span class="pre">n</span></tt>th of its arguments.</p>
</div>
<div class="section" id="arg-header">
<div class="section" id="id948">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/arg.hpp" class="header">boost/mpl/arg.hpp</a>&gt;
</pre>
</div>
<div class="section" id="arg-parameters">
<div class="section" id="id949">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -74,14 +71,14 @@ template&lt;&gt; struct <a href="./arg.html" class="identifier">arg</a>&lt;<em>n
</tbody>
</table>
</div>
<div class="section" id="arg-expression-semantics">
<div class="section" id="id950">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constant <tt class="literal"><span class="pre">n</span></tt> in the range [1, <a class="refentry reference" href="./limit-metafunction-arity.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</span></tt></a>] and
<p>For any integral constant <tt class="literal"><span class="pre">n</span></tt> in the range [1, <a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a>] and
arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>&lt; <a href="./arg.html" class="identifier">arg</a>&lt;<em>n</em>&gt;,a1,<em>...</em>a<em>n</em> &gt;::type x;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -92,7 +89,7 @@ typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>&
</tbody>
</table>
</div>
<div class="section" id="arg-example">
<div class="section" id="id951">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt; <a href="./arg.html" class="identifier">arg</a>&lt;1&gt;,bool,char,short,int,long &gt;::type t1;
@@ -102,15 +99,16 @@ typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; t3, short > ));
</pre>
</div>
<div class="section" id="arg-see-also">
<div class="section" id="id952">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./composition-and-argument.html">Composition and Argument Binding</a>, <a class="reference" href="./placeholders.html">Placeholders</a>, <a class="refentry reference" href="./lambda.html"><tt class="refentry literal"><span class="pre">lambda</span></tt></a>, <a class="refentry reference" href="./bind.html"><tt class="refentry literal"><span class="pre">bind</span></tt></a>, <a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a>, <a class="refentry reference" href="./apply-wrap.html"><tt class="refentry literal"><span class="pre">apply_wrap</span></tt></a></p>
<!-- modtime: November 13, 2004 18:35:04 +0000 -->
<p><a class="reference internal" href="./composition-and-argument-binding.html">Composition and Argument Binding</a>, <a class="reference internal" href="./placeholders.html">Placeholders</a>, <a class="reference internal" href="./lambda.html">lambda</a>, <a class="reference internal" href="./bind.html">bind</a>, <a class="reference internal" href="./apply.html">apply</a>, <a class="reference internal" href="./apply-wrap.html">apply_wrap</a></p>
<!-- Metafunctions/Composition and Argument Binding//protect |60 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./quote.html" class="navigation-link">Prev</a>&nbsp;<a href="./protect.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./quote.html" class="navigation-link">Back</a>&nbsp;<a href="./protect.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./quote.html" class="navigation-link">Prev</a>&nbsp;<a href="./protect.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./quote.html" class="navigation-link">Back</a>&nbsp;<a href="./protect.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+14 -16
View File
@@ -1,34 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Arithmetic Operations</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./protect.html" class="navigation-link">Prev</a>&nbsp;<a href="./plus.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Back</a>&nbsp;<a href="./comparisons.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./protect.html" class="navigation-link">Prev</a>&nbsp;<a href="./plus.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Back</a>&nbsp;<a href="./comparisons.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./arithmetic-operations.html" class="navigation-link">Arithmetic Operations</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="arithmetic-operations">
<h1><a class="toc-backref" href="./metafunctions.html#id461" name="arithmetic-operations">Arithmetic Operations</a></h1>
<a class="target" id="id227" name="id227"></a><!-- modtime: November 08, 2004 05:37:53 +0000 -->
<!-- Metafunctions/Arithmetic Operations//plus |10 -->
<h1><a class="toc-backref" href="./metafunctions.html#id1535">Arithmetic Operations</a></h1>
<span class="target" id="label-metafunctions-arithmetic-operations"></span><!-- Metafunctions/Arithmetic Operations//plus |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./plus.html" id="id462" name="id462">plus</a></li>
<li><a class="reference" href="./minus.html" id="id463" name="id463">minus</a></li>
<li><a class="reference" href="./times.html" id="id464" name="id464">times</a></li>
<li><a class="reference" href="./divides.html" id="id465" name="id465">divides</a></li>
<li><a class="reference" href="./modulus.html" id="id466" name="id466">modulus</a></li>
<li><a class="reference" href="./negate.html" id="id467" name="id467">negate</a></li>
<li><a class="reference internal" href="./plus.html" id="id1536">plus</a></li>
<li><a class="reference internal" href="./minus.html" id="id1537">minus</a></li>
<li><a class="reference internal" href="./times.html" id="id1538">times</a></li>
<li><a class="reference internal" href="./divides.html" id="id1539">divides</a></li>
<li><a class="reference internal" href="./modulus.html" id="id1540">modulus</a></li>
<li><a class="reference internal" href="./negate.html" id="id1541">negate</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./protect.html" class="navigation-link">Prev</a>&nbsp;<a href="./plus.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Back</a>&nbsp;<a href="./comparisons.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./protect.html" class="navigation-link">Prev</a>&nbsp;<a href="./plus.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Back</a>&nbsp;<a href="./comparisons.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+35 -33
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_ASSERT_MSG</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,9 +11,9 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-not.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert.html" class="navigation-link">Back</a>&nbsp;<a href="./assert-not.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./asserts.html" class="navigation-link">Asserts</a> / <a href="./assert-msg.html" class="navigation-link">BOOST_MPL_ASSERT_MSG</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="assert-msg">
<h1><a class="toc-backref" href="./asserts.html#id512" name="assert-msg">BOOST_MPL_ASSERT_MSG</a></h1>
<div class="section" id="asserts-assert-synopsis">
<div class="section" id="boost-mpl-assert-msg">
<h1><a class="toc-backref" href="./asserts.html#id1589">BOOST_MPL_ASSERT_MSG</a></h1>
<div class="section" id="id1294">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./assert-msg.html" class="identifier">BOOST_MPL_ASSERT_MSG</a>( condition, message, types ) \
@@ -24,29 +21,29 @@
/**/
</pre>
</div>
<div class="section" id="asserts-assert-description">
<div class="section" id="id1295">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Generates a compilation error with an embedded custom message when the condition
<p>Generates a compilation error with an embedded custom message when the condition
doesn't hold.</p>
</div>
<div class="section" id="asserts-assert-header">
<div class="section" id="id1296">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/assert.hpp" class="header">boost/mpl/assert.hpp</a>&gt;
</pre>
</div>
<div class="section" id="asserts-assert-parameters">
<div class="section" id="id1297">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -67,25 +64,27 @@ in the error message.</td>
</tbody>
</table>
</div>
<div class="section" id="asserts-assert-expression-semantics">
<div class="section" id="id1298">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constant expression <tt class="literal"><span class="pre">expr</span></tt>, legal C++ identifier <tt class="literal"><span class="pre">message</span></tt>, and
<p>For any integral constant expression <tt class="literal"><span class="pre">expr</span></tt>, legal C++ identifier <tt class="literal"><span class="pre">message</span></tt>, and
arbitrary types <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>,... <tt class="literal"><span class="pre">tn</span></tt>:</p>
<pre class="literal-block">
<a href="./assert-msg.html" class="identifier">BOOST_MPL_ASSERT_MSG</a>( expr, message, (t1, t2,... tn) );
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>,... <tt class="literal"><span class="pre">tn</span></tt> are non-<tt class="literal"><span class="pre">void</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>,... <tt class="literal"><span class="pre">tn</span></tt> are non-<tt class="literal"><span class="pre">void</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">expr::value</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">expr</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
has no effect.</p>
<p>When possible within the compiler's diagnostic capabilities,
the error message will include the <tt class="literal"><span class="pre">message</span></tt> identifier and the parenthized
the error message will include the <tt class="literal"><span class="pre">message</span></tt> identifier and the parenthized
list of <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>,... <tt class="literal"><span class="pre">tn</span></tt> types, and have a general form of:</p>
<pre class="last literal-block">
<em>...</em> ************( <em>...</em>::message )************)(t1, t2,... tn) <em>...</em>
@@ -97,18 +96,20 @@ list of <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal
<pre class="literal-block">
<a href="./assert-msg.html" class="identifier">BOOST_MPL_ASSERT_MSG</a>( expr, message, (types&lt;t1, t2,... tn&gt;) );
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">expr::value</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">expr</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
has no effect.</p>
<p>When possible within the compiler's diagnostics capabilities,
the error message will include the <tt class="literal"><span class="pre">message</span></tt> identifier and the list of
the error message will include the <tt class="literal"><span class="pre">message</span></tt> identifier and the list of
<tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>,... <tt class="literal"><span class="pre">tn</span></tt> types, and have a general form of:</p>
<pre class="last literal-block">
<em>...</em> ************( <em>...</em>::message )************)(types&lt;t1, t2,... tn&gt;) <em>...</em>
@@ -118,13 +119,13 @@ the error message will include the <tt class="literal"><span class="pre">message
</tbody>
</table>
</div>
<div class="section" id="asserts-assert-example">
<div class="section" id="id1299">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T &gt; struct my
{
// ...
<a href="./assert-msg.html" class="identifier">BOOST_MPL_ASSERT_MSG</a>(
<a href="./assert-msg.html" class="identifier">BOOST_MPL_ASSERT_MSG</a>(
is_integral&lt;T&gt;::value
, NON_INTEGRAL_TYPES_ARE_NOT_ALLOWED
, (T)
@@ -141,15 +142,16 @@ my&lt;void*&gt; test;
// ' to non-scalar type `mpl_::assert&lt;false&gt;' requested
</pre>
</div>
<div class="section" id="asserts-assert-see-also">
<div class="section" id="id1300">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./asserts.html">Asserts</a>, <a class="refentry reference" href="./assert.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT</span></tt></a>, <a class="refentry reference" href="./assert-not.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_NOT</span></tt></a>, <a class="refentry reference" href="./assert-relation.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_RELATION</span></tt></a></p>
<!-- modtime: November 10, 2004 04:45:24 +0000 -->
<p><a class="reference internal" href="./asserts.html">Asserts</a>, <a class="reference internal" href="./assert.html">BOOST_MPL_ASSERT</a>, <a class="reference internal" href="./assert-not.html">BOOST_MPL_ASSERT_NOT</a>, <a class="reference internal" href="./assert-relation.html">BOOST_MPL_ASSERT_RELATION</a></p>
<!-- Macros/Asserts//BOOST_MPL_ASSERT_NOT -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-not.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert.html" class="navigation-link">Back</a>&nbsp;<a href="./assert-not.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -27
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_ASSERT_NOT</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,9 +11,9 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert-msg.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-relation.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert-msg.html" class="navigation-link">Back</a>&nbsp;<a href="./assert-relation.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./asserts.html" class="navigation-link">Asserts</a> / <a href="./assert-not.html" class="navigation-link">BOOST_MPL_ASSERT_NOT</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="assert-not">
<h1><a class="toc-backref" href="./asserts.html#id513" name="assert-not">BOOST_MPL_ASSERT_NOT</a></h1>
<div class="section" id="macros-asserts-assert-synopsis">
<div class="section" id="boost-mpl-assert-not">
<h1><a class="toc-backref" href="./asserts.html#id1590">BOOST_MPL_ASSERT_NOT</a></h1>
<div class="section" id="id1301">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>( pred ) \
@@ -24,55 +21,56 @@
/**/
</pre>
</div>
<div class="section" id="macros-asserts-assert-description">
<div class="section" id="id1302">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Generates a compilation error when predicate holds true.</p>
</div>
<div class="section" id="macros-asserts-assert-header">
<div class="section" id="id1303">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/assert.hpp" class="header">boost/mpl/assert.hpp</a>&gt;
</pre>
</div>
<div class="section" id="macros-asserts-assert-parameters">
<div class="section" id="id1304">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="16%" />
<col width="38%" />
<col width="46%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">pred</span></tt></td>
<td>Boolean nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
<td>Boolean nullary <a class="reference internal" href="./metafunction.html">Metafunction</a></td>
<td>A predicate to be asserted to be false.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="macros-asserts-assert-expression-semantics">
<div class="section" id="id1305">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any boolean nullary <a class="reference" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<p>For any boolean nullary <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<pre class="literal-block">
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( pred ));
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">pred::type::value</span> <span class="pre">!=</span> <span class="pre">false</span></tt>, otherwise
has no effect. Note that double parentheses are required even if no commas
has no effect. Note that double parentheses are required even if no commas
appear in the condition.</p>
<p>When possible within the compiler's diagnostic capabilities,
the error message will include the predicate's full type name, and have a
the error message will include the predicate's full type name, and have a
general form of:</p>
<pre class="last literal-block">
<em>...</em> ************boost::mpl::<a href="./not.html" class="identifier">not_</a>&lt; pred >::************ <em>...</em>
@@ -82,7 +80,7 @@ general form of:</p>
</tbody>
</table>
</div>
<div class="section" id="macros-asserts-assert-example">
<div class="section" id="id1306">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T, typename U &gt; struct my
@@ -96,19 +94,20 @@ my&lt;void,void&gt; test;
// In instantiation of `my&lt;void, void&gt;':
// instantiated from here
// conversion from `
// mpl_::failed************boost::mpl::<a href="./not.html" class="identifier">not_</a>&lt;boost::is_same&lt;void, void&gt;
// mpl_::failed************boost::mpl::<a href="./not.html" class="identifier">not_</a>&lt;boost::is_same&lt;void, void&gt;
// &gt;::************' to non-scalar type `mpl_::assert&lt;false&gt;' requested
</pre>
</div>
<div class="section" id="macros-asserts-assert-see-also">
<div class="section" id="id1307">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./asserts.html">Asserts</a>, <a class="refentry reference" href="./assert.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT</span></tt></a>, <a class="refentry reference" href="./assert-msg.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_MSG</span></tt></a>, <a class="refentry reference" href="./assert-relation.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_RELATION</span></tt></a></p>
<!-- modtime: November 10, 2004 04:45:20 +0000 -->
<p><a class="reference internal" href="./asserts.html">Asserts</a>, <a class="reference internal" href="./assert.html">BOOST_MPL_ASSERT</a>, <a class="reference internal" href="./assert-msg.html">BOOST_MPL_ASSERT_MSG</a>, <a class="reference internal" href="./assert-relation.html">BOOST_MPL_ASSERT_RELATION</a></p>
<!-- Macros/Asserts//BOOST_MPL_ASSERT_RELATION -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert-msg.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-relation.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert-msg.html" class="navigation-link">Back</a>&nbsp;<a href="./assert-relation.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+24 -25
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_ASSERT_RELATION</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,9 +11,9 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert-not.html" class="navigation-link">Prev</a>&nbsp;<a href="./introspection.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert-not.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./asserts.html" class="navigation-link">Asserts</a> / <a href="./assert-relation.html" class="navigation-link">BOOST_MPL_ASSERT_RELATION</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="assert-relation">
<h1><a class="toc-backref" href="./asserts.html#id514" name="assert-relation">BOOST_MPL_ASSERT_RELATION</a></h1>
<div class="section" id="the-macros-asserts-assert-synopsis">
<div class="section" id="boost-mpl-assert-relation">
<h1><a class="toc-backref" href="./asserts.html#id1591">BOOST_MPL_ASSERT_RELATION</a></h1>
<div class="section" id="id1308">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( x, relation, y ) \
@@ -24,30 +21,30 @@
/**/
</pre>
</div>
<div class="section" id="the-macros-asserts-assert-description">
<div class="section" id="id1309">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A specialized assertion macro for checking numerical conditions. Generates
a compilation error when the condition <tt class="literal"><span class="pre">(</span> <span class="pre">x</span> <span class="pre">relation</span> <span class="pre">y</span> <span class="pre">)</span></tt>
<p>A specialized assertion macro for checking numerical conditions. Generates
a compilation error when the condition <tt class="literal"><span class="pre">(</span> <span class="pre">x</span> <span class="pre">relation</span> <span class="pre">y</span> <span class="pre">)</span></tt>
doesn't hold.</p>
</div>
<div class="section" id="the-macros-asserts-assert-header">
<div class="section" id="id1310">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/assert.hpp" class="header">boost/mpl/assert.hpp</a>&gt;
</pre>
</div>
<div class="section" id="the-macros-asserts-assert-parameters">
<div class="section" id="id1311">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -67,17 +64,18 @@ checked.</td>
</tbody>
</table>
</div>
<div class="section" id="the-macros-asserts-assert-expression-semantics">
<div class="section" id="id1312">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constants <tt class="literal"><span class="pre">x</span></tt>, <tt class="literal"><span class="pre">y</span></tt> and a legal C++ operator token <tt class="literal"><span class="pre">op</span></tt>:</p>
<pre class="literal-block">
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( x, op, y );
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">(</span> <span class="pre">x</span> <span class="pre">op</span> <span class="pre">y</span> <span class="pre">)</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
has no effect.</p>
@@ -92,7 +90,7 @@ the actual values of both operands, and have a general form of:</p>
</tbody>
</table>
</div>
<div class="section" id="the-macros-asserts-assert-example">
<div class="section" id="id1313">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T, typename U &gt; struct my
@@ -106,18 +104,19 @@ my&lt;char[50],char[10]&gt; test;
// In instantiation of `my&lt;char[50], char[10]&gt;':
// instantiated from here
// conversion from `
// mpl_::failed************mpl_::assert_relation&lt;<a href="./less.html" class="identifier">less</a>, 50, 10&gt;::************'
// mpl_::failed************mpl_::assert_relation&lt;<a href="./less.html" class="identifier">less</a>, 50, 10&gt;::************'
// to non-scalar type `mpl_::assert&lt;false&gt;' requested
</pre>
</div>
<div class="section" id="the-macros-asserts-assert-see-also">
<div class="section" id="id1314">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./asserts.html">Asserts</a>, <a class="refentry reference" href="./assert.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT</span></tt></a>, <a class="refentry reference" href="./assert-not.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_NOT</span></tt></a>, <a class="refentry reference" href="./assert-msg.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_MSG</span></tt></a></p>
<!-- modtime: November 10, 2004 04:45:16 +0000 -->
<p><a class="reference internal" href="./asserts.html">Asserts</a>, <a class="reference internal" href="./assert.html">BOOST_MPL_ASSERT</a>, <a class="reference internal" href="./assert-not.html">BOOST_MPL_ASSERT_NOT</a>, <a class="reference internal" href="./assert-msg.html">BOOST_MPL_ASSERT_MSG</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./assert-not.html" class="navigation-link">Prev</a>&nbsp;<a href="./introspection.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./assert-not.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -27
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_ASSERT</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,9 +11,9 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-msg.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./assert-msg.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./asserts.html" class="navigation-link">Asserts</a> / <a href="./assert.html" class="navigation-link">BOOST_MPL_ASSERT</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="assert">
<h1><a class="toc-backref" href="./asserts.html#id511" name="assert">BOOST_MPL_ASSERT</a></h1>
<div class="section" id="assert-synopsis">
<div class="section" id="boost-mpl-assert">
<h1><a class="toc-backref" href="./asserts.html#id1588">BOOST_MPL_ASSERT</a></h1>
<div class="section" id="id1287">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>( pred ) \
@@ -24,55 +21,56 @@
/**/
</pre>
</div>
<div class="section" id="assert-description">
<div class="section" id="id1288">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Generates a compilation error when the predicate <tt class="literal"><span class="pre">pred</span></tt> holds false.</p>
</div>
<div class="section" id="assert-header">
<div class="section" id="id1289">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/assert.hpp" class="header">boost/mpl/assert.hpp</a>&gt;
</pre>
</div>
<div class="section" id="assert-parameters">
<div class="section" id="id1290">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="43%" />
<col width="38%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">pred</span></tt></td>
<td>Boolean nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
<td>Boolean nullary <a class="reference internal" href="./metafunction.html">Metafunction</a></td>
<td>A predicate to be asserted.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="assert-expression-semantics">
<div class="section" id="id1291">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any boolean nullary <a class="reference" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<p>For any boolean nullary <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<pre class="literal-block">
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( pred ));
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Generates a compilation error if <tt class="literal"><span class="pre">pred::type::value</span> <span class="pre">!=</span> <span class="pre">true</span></tt>, otherwise
has no effect. Note that double parentheses are required even if no commas
has no effect. Note that double parentheses are required even if no commas
appear in the condition.</p>
<p>When possible within the compiler's diagnostic capabilities,
the error message will include the predicate's full type name, and have a
the error message will include the predicate's full type name, and have a
general form of:</p>
<pre class="last literal-block">
<em>...</em> ************ pred::************ <em>...</em>
@@ -82,7 +80,7 @@ general form of:</p>
</tbody>
</table>
</div>
<div class="section" id="assert-example">
<div class="section" id="id1292">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T, typename U &gt; struct my
@@ -96,19 +94,20 @@ my&lt;void*,char*&gt; test;
// In instantiation of `my&lt;void, char*&gt;':
// instantiated from here
// conversion from `
// mpl_::failed************boost::is_same&lt;void, char*&gt;::************' to
// mpl_::failed************boost::is_same&lt;void, char*&gt;::************' to
// non-scalar type `mpl_::assert&lt;false&gt;' requested
</pre>
</div>
<div class="section" id="assert-see-also">
<div class="section" id="id1293">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./asserts.html">Asserts</a>, <a class="refentry reference" href="./assert-not.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_NOT</span></tt></a>, <a class="refentry reference" href="./assert-msg.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_MSG</span></tt></a>, <a class="refentry reference" href="./assert-relation.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_RELATION</span></tt></a></p>
<!-- modtime: November 10, 2004 04:45:28 +0000 -->
<p><a class="reference internal" href="./asserts.html">Asserts</a>, <a class="reference internal" href="./assert-not.html">BOOST_MPL_ASSERT_NOT</a>, <a class="reference internal" href="./assert-msg.html">BOOST_MPL_ASSERT_MSG</a>, <a class="reference internal" href="./assert-relation.html">BOOST_MPL_ASSERT_RELATION</a></p>
<!-- Macros/Asserts//BOOST_MPL_ASSERT_MSG -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert-msg.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./assert-msg.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./asserts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+10 -12
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Asserts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,22 +12,23 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./asserts.html" class="navigation-link">Asserts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="asserts">
<h1><a class="toc-backref" href="./macros.html#id510" name="asserts">Asserts</a></h1>
<a class="target" id="label-macros-asserts" name="label-macros-asserts"></a><p>The MPL supplies a suite of static assertion macros that are specifically
<h1><a class="toc-backref" href="./macros.html#id1587">Asserts</a></h1>
<p id="label-macros-asserts">The MPL supplies a suite of static assertion macros that are specifically
designed to generate maximally useful and informative error messages
within the diagnostic capabilities of each compiler.</p>
<p>All assert macros can be used at class, function, or namespace scope.</p>
<!-- modtime: November 05, 2004 07:25:45 +0000 -->
<!-- Macros/Asserts//BOOST_MPL_ASSERT -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./assert.html" id="id511" name="id511">BOOST_MPL_ASSERT</a></li>
<li><a class="reference" href="./assert-msg.html" id="id512" name="id512">BOOST_MPL_ASSERT_MSG</a></li>
<li><a class="reference" href="./assert-not.html" id="id513" name="id513">BOOST_MPL_ASSERT_NOT</a></li>
<li><a class="reference" href="./assert-relation.html" id="id514" name="id514">BOOST_MPL_ASSERT_RELATION</a></li>
<li><a class="reference internal" href="./assert.html" id="id1588">BOOST_MPL_ASSERT</a></li>
<li><a class="reference internal" href="./assert-msg.html" id="id1589">BOOST_MPL_ASSERT_MSG</a></li>
<li><a class="reference internal" href="./assert-not.html" id="id1590">BOOST_MPL_ASSERT_NOT</a></li>
<li><a class="reference internal" href="./assert-relation.html" id="id1591">BOOST_MPL_ASSERT_RELATION</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./macros.html" class="navigation-link">Prev</a>&nbsp;<a href="./assert.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./introspection.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+46 -48
View File
@@ -1,68 +1,65 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Associative Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./extensible-associative.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./extensible-associative.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./extensible-associative-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./extensible-associative-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./associative-sequence.html" class="navigation-link">Associative Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="associative-sequence">
<h1><a class="toc-backref" href="./concepts.html#id330" name="associative-sequence">Associative Sequence</a></h1>
<div class="section" id="associative-description">
<h1><a class="toc-backref" href="./concepts.html#id1401">Associative Sequence</a></h1>
<div class="section" id="id29">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An <a class="reference" href="./associative-sequence.html">Associative Sequence</a> is a <a class="reference" href="./forward-sequence.html">Forward Sequence</a> that allows efficient retrieval of
elements based on keys. Unlike associative containers in the C++ Standard Library,
MPL associative sequences have no associated ordering relation. Instead,
<em>type identity</em> is used to impose an equivalence relation on keys, and the
order in which sequence elements are traversed during iteration is left
<p>An <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> that allows efficient retrieval of
elements based on keys. Unlike associative containers in the C++ Standard Library,
MPL associative sequences have no associated ordering relation. Instead,
<em>type identity</em> is used to impose an equivalence relation on keys, and the
order in which sequence elements are traversed during iteration is left
unspecified.</p>
</div>
<div class="section" id="associative-definitions">
<div class="section" id="id30">
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
<a class="target" id="key-part" name="key-part"></a><a class="target" id="value-part" name="value-part"></a><ul class="simple">
<li>A <em>key</em> is a part of the element type used to identify and retrieve
<ul class="simple" id="value-part">
<span id="key-part"></span><li>A <em>key</em> is a part of the element type used to identify and retrieve
the element within the sequence.</li>
<li>A <em>value</em> is a part of the element type retrievied from the sequence
<li>A <em>value</em> is a part of the element type retrievied from the sequence
by its key.</li>
</ul>
</div>
<div class="section" id="associative-expression-requirements">
<div class="section" id="id31">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">s</span></tt> is an <a class="reference" href="./associative-sequence.html">Associative Sequence</a>,
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">s</span></tt> is an <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>,
<tt class="literal"><span class="pre">x</span></tt> is a sequence element, and <tt class="literal"><span class="pre">k</span></tt> and <tt class="literal"><span class="pre">def</span></tt> are arbitrary types.</p>
<p>In addition to the requirements defined in <a class="reference" href="./forward-sequence.html">Forward Sequence</a>,
<p>In addition to the requirements defined in <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>,
the following must be met:</p>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="33%" />
<col width="38%" />
<col width="29%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./has-key.html" class="identifier">has_key</a>&lt;s,k&gt;::type</span></tt></td>
<td>Boolean <a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td>Boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./count.html" class="identifier">count</a>&lt;s,k&gt;::type</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./order.html" class="identifier">order</a>&lt;s,k&gt;::type</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a> or <tt class="literal"><span class="pre"><a href="./void.html" class="identifier">void_</a></span></tt></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a> or <tt class="literal"><span class="pre"><a href="./void.html" class="identifier">void_</a></span></tt></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;s,k&gt;::type</span></tt></td>
@@ -84,33 +81,33 @@ the following must be met:</p>
</tbody>
</table>
</div>
<div class="section" id="associative-expression-semantics">
<div class="section" id="id32">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./forward-sequence.html">Forward Sequence</a>.</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="33%" />
<col width="67%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./has-key.html" class="identifier">has_key</a>&lt;s,k&gt;::type</span></tt></td>
<td>A boolean <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that
<td>A boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that
<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if there is one or more
elements with the key <tt class="literal"><span class="pre">k</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="refentry reference" href="./has-key.html"><tt class="refentry literal"><span class="pre">has_key</span></tt></a>.</td>
elements with the key <tt class="literal"><span class="pre">k</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./has-key.html">has_key</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./count.html" class="identifier">count</a>&lt;s,k&gt;::type</span></tt></td>
<td>The number of elements with the key <tt class="literal"><span class="pre">k</span></tt> in <tt class="literal"><span class="pre">s</span></tt>;
see <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>.</td>
see <a class="reference internal" href="./count.html">count</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./order.html" class="identifier">order</a>&lt;s,k&gt;::type</span></tt></td>
<td>A unique unsigned <a class="reference" href="./integral-constant.html">Integral Constant</a> associated
with the key <tt class="literal"><span class="pre">k</span></tt> in the sequence <tt class="literal"><span class="pre">s</span></tt>; see <a class="refentry reference" href="./order.html"><tt class="refentry literal"><span class="pre">order</span></tt></a>.</td>
<td>A unique unsigned <a class="reference internal" href="./integral-constant.html">Integral Constant</a> associated
with the key <tt class="literal"><span class="pre">k</span></tt> in the sequence <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./order.html">order</a>.</td>
</tr>
<tr><td><pre class="first last literal-block">
<a href="./at.html" class="identifier">at</a>&lt;s,k&gt;::type
@@ -118,42 +115,43 @@ with the key <tt class="literal"><span class="pre">k</span></tt> in the sequence
</pre>
</td>
<td>The first element associated with the key <tt class="literal"><span class="pre">k</span></tt>
in the sequence <tt class="literal"><span class="pre">s</span></tt>; see <a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a>.</td>
in the sequence <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./at.html">at</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./key-type.html" class="identifier">key_type</a>&lt;s,x&gt;::type</span></tt></td>
<td>The key part of the element <tt class="literal"><span class="pre">x</span></tt> that would be
used to identify <tt class="literal"><span class="pre">x</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="refentry reference" href="./key-type.html"><tt class="refentry literal"><span class="pre">key_type</span></tt></a>.</td>
used to identify <tt class="literal"><span class="pre">x</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./key-type.html">key_type</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./value-type.html" class="identifier">value_type</a>&lt;s,x&gt;::type</span></tt></td>
<td>The value part of the element <tt class="literal"><span class="pre">x</span></tt> that would be
used for <tt class="literal"><span class="pre">x</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="refentry reference" href="./value-type.html"><tt class="refentry literal"><span class="pre">value_type</span></tt></a>.</td>
used for <tt class="literal"><span class="pre">x</span></tt> in <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./value-type.html">value_type</a>.</td>
</tr>
</tbody>
</table>
<!-- Invariants
- - - - - - - - - -
For any associative sequence ``s`` the following invariants always hold:
For any associative sequence ``s`` the following invariants always hold:
* ??? -->
</div>
<div class="section" id="associative-models">
<div class="section" id="id33">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./set.html"><tt class="refentry literal"><span class="pre">set</span></tt></a></li>
<li><a class="refentry reference" href="./map.html"><tt class="refentry literal"><span class="pre">map</span></tt></a></li>
<li><a class="reference internal" href="./set.html">set</a></li>
<li><a class="reference internal" href="./map.html">map</a></li>
</ul>
<!-- * |multiset| -->
</div>
<div class="section" id="associative-see-also">
<div class="section" id="id34">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>, <a class="refentry reference" href="./has-key.html"><tt class="refentry literal"><span class="pre">has_key</span></tt></a>, <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>, <a class="refentry reference" href="./order.html"><tt class="refentry literal"><span class="pre">order</span></tt></a>, <a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a>, <a class="refentry reference" href="./key-type.html"><tt class="refentry literal"><span class="pre">key_type</span></tt></a>, <a class="refentry reference" href="./value-type.html"><tt class="refentry literal"><span class="pre">value_type</span></tt></a></p>
<!-- modtime: November 13, 2004 00:51:14 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>, <a class="reference internal" href="./has-key.html">has_key</a>, <a class="reference internal" href="./count.html">count</a>, <a class="reference internal" href="./order.html">order</a>, <a class="reference internal" href="./at.html">at</a>, <a class="reference internal" href="./key-type.html">key_type</a>, <a class="reference internal" href="./value-type.html">value_type</a></p>
<!-- Sequences/Concepts//Extensible Associative Sequence |80 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./extensible-associative.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./extensible-associative.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./extensible-associative-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./extensible-associative-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+35 -35
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: at_c</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./at-c.html" class="navigation-link">at_c</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="at-c">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id354" name="at-c">at_c</a></h1>
<div class="section" id="intrinsic-at-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1426">at_c</a></h1>
<div class="section" id="id185">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,35 +26,35 @@ struct <a href="./at-c.html" class="identifier">at_c</a>
};
</pre>
</div>
<div class="section" id="intrinsic-at-description">
<div class="section" id="id186">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a type identical to the <tt class="literal"><span class="pre">n</span></tt>th element from the beginning of
the sequence. <tt class="literal"><span class="pre"><a href="./at-c.html" class="identifier">at_c</a>&lt;Sequence,n&gt;::type</span></tt> is a shorcut notation for
<p>Returns a type identical to the <tt class="literal"><span class="pre">n</span></tt>th element from the beginning of
the sequence. <tt class="literal"><span class="pre"><a href="./at-c.html" class="identifier">at_c</a>&lt;Sequence,n&gt;::type</span></tt> is a shorcut notation for
<tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;</span> <span class="pre">Sequence,</span> <span class="pre"><a href="./long.html" class="identifier">long_</a>&lt;n&gt;</span> <span class="pre">&gt;::type</span></tt>.</p>
</div>
<div class="section" id="intrinsic-at-header">
<div class="section" id="id187">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/at.hpp" class="header">boost/mpl/at.hpp</a>&gt;
</pre>
</div>
<div class="section" id="intrinsic-at-parameters">
<div class="section" id="id188">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">n</span></tt></td>
@@ -68,18 +65,20 @@ specifying the element to be retrieved.</td>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-at-expression-semantics">
<div class="section" id="id189">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<pre class="literal-block">
typedef <a href="./at-c.html" class="identifier">at_c</a>&lt;Sequence,n&gt;::type t;
typedef <a href="./at-c.html" class="identifier">at_c</a>&lt;Sequence,n&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">0</span> <span class="pre">&lt;=</span> <span class="pre">n</span> <span class="pre">&lt;</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;Sequence&gt;::value</span></tt></td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">0</span> <span class="pre">&lt;=</span> <span class="pre">n</span> <span class="pre">&lt;</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;Sequence&gt;::value</span></tt></p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -90,46 +89,47 @@ typedef <a href="./at.html" class="identifier">at</a>&lt; Sequence, <a href="./l
</tbody>
</table>
</div>
<div class="section" id="at-complexity">
<div class="section" id="id190">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="47%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Sequence archetype</th>
<th>Complexity</th>
<tr><th class="head">Sequence archetype</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<tr><td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>Linear.</td>
</tr>
<tr><td><a class="reference" href="./random-access-sequence.html">Random Access Sequence</a></td>
<tr><td><a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a></td>
<td>Amortized constant time.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-at-example">
<div class="section" id="id191">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;long,10,50&gt; range;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,0 &gt;::value), ==, 10 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,10 &gt;::value), ==, 20 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,40 &gt;::value), ==, 50 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,0 &gt;::type::value), ==, 10 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,10 &gt;::type::value), ==, 20 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./at-c.html" class="identifier">at_c</a>&lt; range,40 &gt;::type::value), ==, 50 );
</pre>
</div>
<div class="section" id="intrinsic-at-see-also">
<div class="section" id="id192">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a>, <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a>, <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a></p>
<!-- modtime: November 13, 2004 01:23:57 +0000 -->
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="reference internal" href="./at.html">at</a>, <a class="reference internal" href="./front.html">front</a>, <a class="reference internal" href="./back.html">back</a></p>
<!-- Sequences/Intrinsic Metafunctions//back -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./at.html" class="navigation-link">Prev</a>&nbsp;<a href="./back.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./at.html" class="navigation-link">Back</a>&nbsp;<a href="./back.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+48 -47
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: at</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./at.html" class="navigation-link">at</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="at">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id353" name="at">at</a></h1>
<div class="section" id="at-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1425">at</a></h1>
<div class="section" id="id177">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -39,52 +36,52 @@ struct <a href="./at.html" class="identifier">at</a>
};
</pre>
</div>
<div class="section" id="at-description">
<div class="section" id="id178">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a></span></tt> is an <a class="reference" href="./terminology.html#overloaded-name">overloaded name</a>:</p>
<p><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a></span></tt> is an <a class="reference internal" href="./terminology.html#overloaded-name">overloaded name</a>:</p>
<ul class="simple">
<li><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;Sequence,N&gt;</span></tt> returns the <tt class="literal"><span class="pre">N</span></tt>-th element from the beginning of the
<a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">Sequence</span></tt>.</li>
<li><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;AssocSeq,Key,Default&gt;</span></tt> returns the first element associated with <tt class="literal"><span class="pre">Key</span></tt>
in the <a class="reference" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">AssocSeq</span></tt>, or <tt class="literal"><span class="pre">Default</span></tt> if no such element
<li><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;Sequence,N&gt;</span></tt> returns the <tt class="literal"><span class="pre">N</span></tt>-th element from the beginning of the
<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">Sequence</span></tt>.</li>
<li><tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;AssocSeq,Key,Default&gt;</span></tt> returns the first element associated with <tt class="literal"><span class="pre">Key</span></tt>
in the <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">AssocSeq</span></tt>, or <tt class="literal"><span class="pre">Default</span></tt> if no such element
exists.</li>
</ul>
</div>
<div class="section" id="at-header">
<div class="section" id="id179">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/at.hpp" class="header">boost/mpl/at.hpp</a>&gt;
</pre>
</div>
<div class="section" id="at-model-of">
<div class="section" id="id180">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="at-parameters">
<div class="section" id="id181">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">AssocSeq</span></tt></td>
<td><a class="reference" href="./associative-sequence.html">Associative Sequence</a></td>
<td><a class="reference internal" href="./associative-sequence.html">Associative Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">N</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>An offset from the beginning of the sequence
specifying the element to be retrieved.</td>
</tr>
@@ -100,20 +97,22 @@ not found.</td>
</tbody>
</table>
</div>
<div class="section" id="at-expression-semantics">
<div class="section" id="id182">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt>:</p>
<p class="compound-first">For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./at.html" class="identifier">at</a>&lt;s,n&gt;::type t;
typedef <a href="./at.html" class="identifier">at</a>&lt;s,n&gt;::type t;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">0</span> <span class="pre">&lt;=</span> <span class="pre">n::value</span> <span class="pre">&lt;</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">0</span> <span class="pre">&lt;=</span> <span class="pre">n::value</span> <span class="pre">&lt;</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -125,11 +124,11 @@ typedef <a href="./deref.html" class="identifier">deref</a>&lt; <a href="./advan
</table>
</div>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary types <tt class="literal"><span class="pre">key</span></tt> and <tt class="literal"><span class="pre">x</span></tt>:</p>
<p class="compound-first">For any <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary types <tt class="literal"><span class="pre">key</span></tt> and <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./at.html" class="identifier">at</a>&lt;s,key,x&gt;::type t;
typedef <a href="./at.html" class="identifier">at</a>&lt;s,key,x&gt;::type t;
</pre>
<table class="compound-middle field-list" frame="void" rules="none">
<table class="compound-middle docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -142,13 +141,14 @@ otherwise <tt class="literal"><span class="pre">t</span></tt> is identical to <t
</table>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<pre class="compound-middle literal-block">
typedef <a href="./at.html" class="identifier">at</a>&lt;s,key&gt;::type t;
typedef <a href="./at.html" class="identifier">at</a>&lt;s,key&gt;::type t;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -161,31 +161,31 @@ typedef <a href="./at.html" class="identifier">at</a>&lt;s,key,<a href="./void.h
</div>
</div>
<div class="section" id="complexity">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<table border="1" class="table">
<h3>Complexity</h3>
<table border="1" class="docutils table">
<colgroup>
<col width="47%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Sequence archetype</th>
<th>Complexity</th>
<tr><th class="head">Sequence archetype</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<tr><td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>Linear.</td>
</tr>
<tr><td><a class="reference" href="./random-access-sequence.html">Random Access Sequence</a></td>
<tr><td><a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a></td>
<td>Amortized constant time.</td>
</tr>
<tr><td><a class="reference" href="./associative-sequence.html">Associative Sequence</a></td>
<tr><td><a class="reference internal" href="./associative-sequence.html">Associative Sequence</a></td>
<td>Amortized constant time.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="at-example">
<div class="section" id="id183">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;long,10,50&gt; range;
@@ -200,15 +200,16 @@ typedef <a href="./set.html" class="identifier">set</a>&lt; int const,long*,doub
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./at.html" class="identifier">at</a>&lt;s,int&gt;::type, int > ));
</pre>
</div>
<div class="section" id="at-see-also">
<div class="section" id="id184">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="reference" href="./associative-sequence.html">Associative Sequence</a>, <a class="refentry reference" href="./at-c.html"><tt class="refentry literal"><span class="pre">at_c</span></tt></a>, <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a>, <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a></p>
<!-- modtime: November 13, 2004 01:23:02 +0000 -->
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>, <a class="reference internal" href="./at-c.html">at_c</a>, <a class="reference internal" href="./front.html">front</a>, <a class="reference internal" href="./back.html">back</a></p>
<!-- Sequences/Intrinsic Metafunctions//at_c -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Prev</a>&nbsp;<a href="./at-c.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./at-c.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -32
View File
@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_AUX_LAMBDA_SUPPORT</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./broken-compiler.html" class="navigation-link">Prev</a>&nbsp;<a href="./terminology.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./broken-compiler.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./broken-compiler.html" class="navigation-link">Broken Compiler Workarounds</a> / <a href="./aux-lambda-support.html" class="navigation-link">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./broken-compiler-workarounds.html" class="navigation-link">Prev</a>&nbsp;<a href="./terminology.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./broken-compiler-workarounds.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./broken-compiler-workarounds.html" class="navigation-link">Broken Compiler Workarounds</a> / <a href="./aux-lambda-support.html" class="navigation-link">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="aux-lambda-support">
<h1><a class="toc-backref" href="./broken-compiler.html#id528" name="aux-lambda-support">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></h1>
<div class="section" id="aux-synopsis">
<div class="section" id="boost-mpl-aux-lambda-support">
<h1><a class="toc-backref" href="./broken-compiler-workarounds.html#id1609">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></h1>
<div class="section" id="id1384">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./aux-lambda-support.html" class="identifier">BOOST_MPL_AUX_LAMBDA_SUPPORT</a>(arity, fun, params) \
@@ -24,30 +21,30 @@
/**/
</pre>
</div>
<div class="section" id="aux-description">
<div class="section" id="id1385">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Enables metafunction <tt class="literal"><span class="pre">fun</span></tt> for the use in <a class="reference" href="./lambda-expression.html">Lambda Expression</a>s on
compilers that don't support partial template specialization or/and
<p>Enables metafunction <tt class="literal"><span class="pre">fun</span></tt> for the use in <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a>s on
compilers that don't support partial template specialization or/and
template template parameters. Expands to nothing on conforming compilers.</p>
</div>
<div class="section" id="aux-header">
<div class="section" id="id1386">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/aux_/lambda_support.hpp" class="header">boost/mpl/aux_/lambda_support.hpp</a>&gt;
</pre>
</div>
<div class="section" id="aux-parameters">
<div class="section" id="id1387">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -61,16 +58,16 @@ template parameters, including the defaults.</td>
<td>The metafunction's name.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">params</span></tt></td>
<td>A <a class="reference" href="http://www.boost.org/libs/preprocessor/doc/data/tuples.html" target="_top">PP-tuple</a></td>
<td>A <a class="reference external" href="http://www.boost.org/libs/preprocessor/doc/data/tuples.html" target="_top">PP-tuple</a></td>
<td>A tuple of the metafunction's parameter names, in
their original order, including the defaults.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="aux-expression-semantics">
<div class="section" id="id1388">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constant <tt class="literal"><span class="pre">n</span></tt>, a <a class="reference" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">fun</span></tt>, and arbitrary types <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>:</p>
<p>For any integral constant <tt class="literal"><span class="pre">n</span></tt>, a <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">fun</span></tt>, and arbitrary types <tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt>:</p>
<pre class="literal-block">
template&lt; typename A1,<em>...</em> typename A<em>n</em> &gt; struct fun
{
@@ -79,24 +76,24 @@ template&lt; typename A1,<em>...</em> typename A<em>n</em> &gt; struct fun
<a href="./aux-lambda-support.html" class="identifier">BOOST_MPL_AUX_LAMBDA_SUPPORT</a>(n, fun, (A1,<em>...</em>A<em>n</em>))
};
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">Appears in <tt class="literal"><span class="pre">fun</span></tt>'s scope, immediately followed by the scope-closing
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">Appears in <tt class="literal"><span class="pre">fun</span></tt>'s scope, immediately followed by the scope-closing
bracket (<tt class="literal"><span class="pre">}</span></tt>).</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">Expands to nothing and has no effect on conforming compilers. On compilers that
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">Expands to nothing and has no effect on conforming compilers. On compilers that
don't support partial template specialization or/and template template parameters
expands to an unspecified token sequence enabling <tt class="literal"><span class="pre">fun</span></tt> to participate in
<a class="reference" href="./lambda-expression.html">Lambda Expression</a>s with the semantics described in this manual.</td>
<a class="reference internal" href="./lambda-expression.html">Lambda Expression</a>s with the semantics described in this manual.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="aux-example">
<div class="section" id="id1389">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T, typename U = int &gt; struct f
@@ -106,18 +103,19 @@ template&lt; typename T, typename U = int &gt; struct f
<a href="./aux-lambda-support.html" class="identifier">BOOST_MPL_AUX_LAMBDA_SUPPORT</a>(2, f, (T,U))
};
typedef <a href="./apply.html" class="identifier">apply</a><tt class="literal"><span class="pre">1</span></tt>&lt; f&lt;char,_1&gt;,long &gt;::type r;
typedef <a href="./apply.html" class="identifier">apply</a><tt class="literal"><span class="pre">1</span></tt>&lt; f&lt;char,<a href="./placeholders.html" class="identifier">_1</a>&gt;,long &gt;::type r;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r, char[sizeof(long)] > ));
</pre>
</div>
<div class="section" id="aux-see-also">
<div class="section" id="id1390">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./macros.html">Macros</a>, <a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./lambda-expression.html">Lambda Expression</a></p>
<!-- modtime: November 10, 2004 04:45:01 +0000 -->
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./broken-compiler.html" class="navigation-link">Prev</a>&nbsp;<a href="./terminology.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./broken-compiler.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./broken-compiler-workarounds.html" class="navigation-link">Prev</a>&nbsp;<a href="./terminology.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./broken-compiler-workarounds.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+31 -33
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Back Extensible Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,39 +12,39 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./back-extensible-sequence.html" class="navigation-link">Back Extensible Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="back-extensible-sequence">
<h1><a class="toc-backref" href="./concepts.html#id329" name="back-extensible-sequence">Back Extensible Sequence</a></h1>
<div class="section" id="back-description">
<h1><a class="toc-backref" href="./concepts.html#id1400">Back Extensible Sequence</a></h1>
<div class="section" id="id23">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a> is an <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> that supports amortized constant
<p>A <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a> is an <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> that supports amortized constant
time insertion and removal operations at the end.</p>
</div>
<div class="section" id="back-refinement-of">
<div class="section" id="id24">
<h3><a class="subsection-title" href="#refinement-of" name="refinement-of">Refinement of</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></p>
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></p>
</div>
<div class="section" id="back-expression-requirements">
<div class="section" id="id25">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In addition to the requirements defined in <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>,
for any <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="table">
<p>In addition to the requirements defined in <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>,
for any <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="35%" />
<col width="35%" />
<col width="30%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./push-back.html" class="identifier">push_back</a>&lt;s,x&gt;::type</span></tt></td>
<td><a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./pop-back.html" class="identifier">pop_back</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./back.html" class="identifier">back</a>&lt;s&gt;::type</span></tt></td>
@@ -57,51 +54,52 @@ for any <a class="reference" href="./back-extensible-sequence.html">Back Extensi
</tbody>
</table>
</div>
<div class="section" id="back-expression-semantics">
<div class="section" id="id26">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="34%" />
<col width="66%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./push-back.html" class="identifier">push_back</a>&lt;s,x&gt;::type</span></tt></td>
<td>Equivalent to <tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,<a href="./end.html" class="identifier">end</a>&lt;s&gt;::type,x&gt;::type</span></tt>;
see <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a>.</td>
see <a class="reference internal" href="./push-back.html">push_back</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./pop-back.html" class="identifier">pop_back</a>&lt;v&gt;::type</span></tt></td>
<td>Equivalent to <tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,<a href="./end.html" class="identifier">end</a>&lt;s&gt;::type&gt;::type</span></tt>;
see <a class="refentry reference" href="./pop-back.html"><tt class="refentry literal"><span class="pre">pop_back</span></tt></a>.</td>
see <a class="reference internal" href="./pop-back.html">pop_back</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./back.html" class="identifier">back</a>&lt;s&gt;::type</span></tt></td>
<td>The last element in the sequence; see <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a>.</td>
<td>The last element in the sequence; see <a class="reference internal" href="./back.html">back</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="back-models">
<div class="section" id="id27">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./deque.html"><tt class="refentry literal"><span class="pre">deque</span></tt></a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./deque.html">deque</a></li>
</ul>
</div>
<div class="section" id="back-see-also">
<div class="section" id="id28">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a>, <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a>, <a class="refentry reference" href="./pop-back.html"><tt class="refentry literal"><span class="pre">pop_back</span></tt></a>, <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a></p>
<!-- modtime: November 10, 2004 04:27:21 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a>, <a class="reference internal" href="./push-back.html">push_back</a>, <a class="reference internal" href="./pop-back.html">pop_back</a>, <a class="reference internal" href="./back.html">back</a></p>
<!-- Sequences/Concepts//Associative Sequence |70 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./front-extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./associative-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./front-extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./associative-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+29 -31
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: back_inserter</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./inserters.html" class="navigation-link">Inserters</a> / <a href="./back-inserter.html" class="navigation-link">back_inserter</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="back-inserter">
<h1><a class="toc-backref" href="./inserters.html#id393" name="back-inserter">back_inserter</a></h1>
<div class="section" id="inserters-back-synopsis">
<h1><a class="toc-backref" href="./inserters.html#id1465">back_inserter</a></h1>
<div class="section" id="id465">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,92 +26,93 @@ struct <a href="./back-inserter.html" class="identifier">back_inserter</a>
};
</pre>
</div>
<div class="section" id="inserters-back-description">
<div class="section" id="id466">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Inserts elements at the end of the sequence.</p>
</div>
<div class="section" id="inserters-back-header">
<div class="section" id="id467">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/back_inserter.hpp" class="header">boost/mpl/back_inserter.hpp</a>&gt;
</pre>
</div>
<div class="section" id="inserters-back-model-of">
<div class="section" id="id468">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./inserter.html">Inserter</a></p>
<p><a class="reference internal" href="./inserter.html">Inserter</a></p>
</div>
<div class="section" id="inserters-back-parameters">
<div class="section" id="id469">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="18%" />
<col width="36%" />
<col width="46%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Seq</span></tt></td>
<td><a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></td>
<td>A sequence to bind the inserter to.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-back-expression-semantics">
<div class="section" id="id470">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./inserter.html">Inserter</a>.</p>
<p>For any <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./inserter.html">Inserter</a>.</p>
<p>For any <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="33%" />
<col width="67%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./back-inserter.html" class="identifier">back_inserter</a>&lt;s&gt;</span></tt></td>
<td><p class="first">An <a class="reference" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>, equivalent to</p>
<td><p class="first">An <a class="reference internal" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>, equivalent to</p>
<pre class="last literal-block">
struct in : <a href="./inserter.html" class="identifier">inserter</a>&lt;s,<a href="./push-back.html" class="identifier">push_back</a>&lt;_1,_2&gt; > {};
struct in : <a href="./inserter-class.html" class="identifier">inserter</a>&lt;s,<a href="./push-back.html" class="identifier">push_back</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt; > {};
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-back-complexity">
<div class="section" id="id471">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="inserters-back-example">
<div class="section" id="id472">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./copy.html" class="identifier">copy</a>&lt;
<a href="./range-c.html" class="identifier">range_c</a>&lt;int,5,10&gt;
, <a href="./back-inserter.html" class="identifier">back_inserter</a>&lt; <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,0,1,2,3,4&gt; &gt;
&gt;::type range;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt; range, <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt; > ));
</pre>
</div>
<div class="section" id="inserters-back-see-also">
<div class="section" id="id473">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="reference" href="./inserter.html">Inserter</a>, <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="refentry reference" href="./inserters-inserter.html"><tt class="refentry literal"><span class="pre">inserter</span></tt></a>, <a class="refentry reference" href="./front-inserter.html"><tt class="refentry literal"><span class="pre">front_inserter</span></tt></a>, <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a></p>
<!-- modtime: November 10, 2004 04:44:52 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./inserter.html">Inserter</a>, <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="reference internal" href="./inserter-class.html">inserter (class)</a>, <a class="reference internal" href="./front-inserter.html">front_inserter</a>, <a class="reference internal" href="./push-back.html">push_back</a></p>
<!-- Algorithms/Inserters//front_inserter -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Prev</a>&nbsp;<a href="./front-inserter.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./front-inserter.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+29 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: back</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./back.html" class="navigation-link">back</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="back">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id355" name="back">back</a></h1>
<div class="section" id="back-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1427">back</a></h1>
<div class="section" id="id193">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,55 +25,57 @@ struct <a href="./back.html" class="identifier">back</a>
};
</pre>
</div>
<div class="section" id="intrinsic-back-description">
<div class="section" id="id194">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the last element in the sequence.</p>
</div>
<div class="section" id="back-header">
<div class="section" id="id195">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/back.hpp" class="header">boost/mpl/back.hpp</a>&gt;
</pre>
</div>
<div class="section" id="back-model-of">
<div class="section" id="id196">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="back-parameters">
<div class="section" id="id197">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a></td>
<td><a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-back-expression-semantics">
<div class="section" id="id198">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<p>For any <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./back.html" class="identifier">back</a>&lt;s&gt;::type t;
typedef <a href="./back.html" class="identifier">back</a>&lt;s&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -87,31 +86,32 @@ typedef <a href="./deref.html" class="identifier">deref</a>&lt; <a href="./prior
</tbody>
</table>
</div>
<div class="section" id="back-complexity">
<div class="section" id="id199">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="back-example">
<div class="section" id="id200">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,1&gt; range1;
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt; range2;
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,-10,0&gt; range3;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./back.html" class="identifier">back</a>&lt;range1&gt;::value, ==, 0 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./back.html" class="identifier">back</a>&lt;range2&gt;::value, ==, 9 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./back.html" class="identifier">back</a>&lt;range3&gt;::value, ==, -1 );
</pre>
</div>
<div class="section" id="intrinsic-back-see-also">
<div class="section" id="id201">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a>, <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a>, <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./deref.html"><tt class="refentry literal"><span class="pre">deref</span></tt></a>, <a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a></p>
<!-- modtime: November 13, 2004 01:24:30 +0000 -->
<p><a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="reference internal" href="./front.html">front</a>, <a class="reference internal" href="./push-back.html">push_back</a>, <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./deref.html">deref</a>, <a class="reference internal" href="./at.html">at</a></p>
<!-- Sequences/Intrinsic Metafunctions//begin -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./at-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./begin.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./at-c.html" class="navigation-link">Back</a>&nbsp;<a href="./begin.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: begin</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./begin.html" class="navigation-link">begin</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="begin">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id356" name="begin">begin</a></h1>
<div class="section" id="begin-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1428">begin</a></h1>
<div class="section" id="id202">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,33 +25,33 @@ struct <a href="./begin.html" class="identifier">begin</a>
};
</pre>
</div>
<div class="section" id="begin-description">
<div class="section" id="id203">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an iterator that points to the first element of the sequence. If
the argument is not a <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, returns <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</p>
the argument is not a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, returns <a class="reference internal" href="./void.html">void_</a>.</p>
</div>
<div class="section" id="begin-header">
<div class="section" id="id204">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/begin_end.hpp" class="header">boost/mpl/begin_end.hpp</a>&gt;
</pre>
</div>
<div class="section" id="begin-model-of">
<div class="section" id="id205">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="begin-parameters">
<div class="section" id="id206">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="18%" />
<col width="22%" />
<col width="60%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -66,32 +63,32 @@ returned.</td>
</tbody>
</table>
</div>
<div class="section" id="begin-expression-semantics">
<div class="section" id="id207">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./begin.html" class="identifier">begin</a>&lt;x&gt;::type first;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./forward-iterator.html">Forward Iterator</a> or <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a> or <a class="reference internal" href="./void.html">void_</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">x</span></tt> is a <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">first</span></tt> is an iterator pointing to the
first element of <tt class="literal"><span class="pre">s</span></tt>; otherwise <tt class="literal"><span class="pre">first</span></tt> is <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</td>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">x</span></tt> is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">first</span></tt> is an iterator pointing to the
first element of <tt class="literal"><span class="pre">s</span></tt>; otherwise <tt class="literal"><span class="pre">first</span></tt> is <a class="reference internal" href="./void.html">void_</a>.</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body">If <tt class="literal"><span class="pre">first</span></tt> is an iterator, it is either dereferenceable or past-the-end; it
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body">If <tt class="literal"><span class="pre">first</span></tt> is an iterator, it is either dereferenceable or past-the-end; it
is past-the-end if and only if <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;x&gt;::value</span> <span class="pre">==</span> <span class="pre">0</span></tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="begin-complexity">
<div class="section" id="id208">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="begin-example">
<div class="section" id="id209">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt; unsigned char,unsigned short,
@@ -103,15 +100,16 @@ typedef <a href="./begin.html" class="identifier">begin</a>&lt;unsigned_types&gt
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./begin.html" class="identifier">begin</a>&lt;int&gt;::type, <a href="./void.html" class="identifier">void_</a> > ));
</pre>
</div>
<div class="section" id="begin-see-also">
<div class="section" id="id210">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./size.html"><tt class="refentry literal"><span class="pre">size</span></tt></a>, <a class="refentry reference" href="./empty.html"><tt class="refentry literal"><span class="pre">empty</span></tt></a></p>
<!-- modtime: November 13, 2004 01:25:11 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./size.html">size</a>, <a class="reference internal" href="./empty.html">empty</a></p>
<!-- Sequences/Intrinsic Metafunctions//clear -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back.html" class="navigation-link">Prev</a>&nbsp;<a href="./clear.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back.html" class="navigation-link">Back</a>&nbsp;<a href="./clear.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -32
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Bidirectional Iterator</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,70 +12,70 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./iterators.html" class="navigation-link">Iterators</a> / <a href="./iterators-concepts.html" class="navigation-link">Concepts</a> / <a href="./bidirectional-iterator.html" class="navigation-link">Bidirectional Iterator</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bidirectional-iterator">
<h1><a class="toc-backref" href="./iterators-concepts.html#id379" name="bidirectional-iterator">Bidirectional Iterator</a></h1>
<div class="section" id="iterators-bidirectional-description">
<h1><a class="toc-backref" href="./iterators-concepts.html#id1451">Bidirectional Iterator</a></h1>
<div class="section" id="id390">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a> is a <a class="reference" href="./forward-iterator.html">Forward Iterator</a> that provides a way to
<p>A <a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a> is a <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a> that provides a way to
obtain an iterator to the previous element in a sequence.</p>
</div>
<div class="section" id="bidirectional-refinement-of">
<div class="section" id="id391">
<h3><a class="subsection-title" href="#refinement-of" name="refinement-of">Refinement of</a></h3>
<p><a class="reference" href="./forward-iterator.html">Forward Iterator</a></p>
<p><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></p>
</div>
<div class="section" id="bidirectional-definitions">
<div class="section" id="id392">
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
<ul class="simple">
<li>a bidirectional iterator <tt class="literal"><span class="pre">i</span></tt> is <cite>decrementable</cite> if there is a &quot;previous&quot;
iterator, that is, if <tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;i&gt;::type</span></tt> expression is well-defined;
iterators pointing to the first element of the sequence are not
<li>a bidirectional iterator <tt class="literal"><span class="pre">i</span></tt> is <cite>decrementable</cite> if there is a &quot;previous&quot;
iterator, that is, if <tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;i&gt;::type</span></tt> expression is well-defined;
iterators pointing to the first element of the sequence are not
decrementable.</li>
</ul>
</div>
<div class="section" id="iterators-bidirectional-expression-requirements">
<div class="section" id="id393">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In addition to the requirements defined in <a class="reference" href="./forward-iterator.html">Forward Iterator</a>,
<p>In addition to the requirements defined in <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>,
the following requirements must be met.</p>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="25%" />
<col width="46%" />
<col width="29%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt></td>
<td><a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td><a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;i&gt;::type</span></tt></td>
<td><a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td><a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre">i::category</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a>, convertible
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a>, convertible
to <tt class="literal"><span class="pre">bidirectional_iterator_tag</span></tt></td>
<td>Constant time</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="iterators-bidirectional-expression-semantics">
<div class="section" id="id394">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<pre class="literal-block">
typedef <a href="./prior.html" class="identifier">prior</a>&lt;i&gt;::type j;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">i</span></tt> is decrementable</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">j</span></tt> is an iterator pointing to the previous element of the
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">j</span></tt> is an iterator pointing to the previous element of the
sequence</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre">j</span></tt> is dereferenceable and incrementable</td>
@@ -86,25 +83,26 @@ sequence</td>
</tbody>
</table>
</div>
<div class="section" id="bidirectional-invariants">
<div class="section" id="id395">
<h3><a class="subsection-title" href="#invariants" name="invariants">Invariants</a></h3>
<p>For any bidirectional iterators <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> the following invariants
<p>For any bidirectional iterators <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> the following invariants
always hold:</p>
<ul class="simple">
<li>If <tt class="literal"><span class="pre">i</span></tt> is incrementable, then <tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;</span> <span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span> <span class="pre">&gt;::type</span></tt> is a null
<li>If <tt class="literal"><span class="pre">i</span></tt> is incrementable, then <tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;</span> <span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span> <span class="pre">&gt;::type</span></tt> is a null
operation; similarly, if <tt class="literal"><span class="pre">i</span></tt> is decrementable, <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;</span> <span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;i&gt;::type</span> <span class="pre">&gt;::type</span></tt>
is a null operation.</li>
</ul>
</div>
<div class="section" id="iterators-bidirectional-see-also">
<div class="section" id="id396">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./forward-iterator.html">Forward Iterator</a>, <a class="reference" href="./random-access-iterator.html">Random Access Iterator</a>, <a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="refentry reference" href="./prior.html"><tt class="refentry literal"><span class="pre">prior</span></tt></a></p>
<!-- modtime: November 15, 2004 02:44:55 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>, <a class="reference internal" href="./random-access-iterator.html">Random Access Iterator</a>, <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="reference internal" href="./prior.html">prior</a></p>
<!-- Iterators/Concepts//Random Access Iterator |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./forward-iterator.html" class="navigation-link">Prev</a>&nbsp;<a href="./random-access-iterator.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./forward-iterator.html" class="navigation-link">Back</a>&nbsp;<a href="./random-access-iterator.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterators-concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -32
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Bidirectional Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,39 +12,39 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./bidirectional-sequence.html" class="navigation-link">Bidirectional Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bidirectional-sequence">
<h1><a class="toc-backref" href="./concepts.html#id325" name="bidirectional-sequence">Bidirectional Sequence</a></h1>
<div class="section" id="bidirectional-description">
<h1><a class="toc-backref" href="./concepts.html#id1396">Bidirectional Sequence</a></h1>
<div class="section" id="id1">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a> is a <a class="reference" href="./forward-sequence.html">Forward Sequence</a> whose iterators model
<a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a>.</p>
<p>A <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a> is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> whose iterators model
<a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a>.</p>
</div>
<div class="section" id="refinement-of">
<h3><a class="subsection-title" href="#refinement-of" name="refinement-of">Refinement of</a></h3>
<p><a class="reference" href="./forward-sequence.html">Forward Sequence</a></p>
<h3>Refinement of</h3>
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></p>
</div>
<div class="section" id="bidirectional-expression-requirements">
<div class="section" id="id2">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In addition to the requirements defined in <a class="reference" href="./forward-sequence.html">Forward Sequence</a>,
for any <a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="table">
<p>In addition to the requirements defined in <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>,
for any <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="30%" />
<col width="39%" />
<col width="30%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td><a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td><a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./back.html" class="identifier">back</a>&lt;s&gt;::type</span></tt></td>
@@ -57,43 +54,44 @@ for any <a class="reference" href="./bidirectional-sequence.html">Bidirectional
</tbody>
</table>
</div>
<div class="section" id="bidirectional-expression-semantics">
<div class="section" id="id3">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./forward-sequence.html">Forward Sequence</a>.</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="28%" />
<col width="72%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./back.html" class="identifier">back</a>&lt;s&gt;::type</span></tt></td>
<td>The last element in the sequence; see <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a>.</td>
<td>The last element in the sequence; see <a class="reference internal" href="./back.html">back</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="bidirectional-models">
<div class="section" id="id4">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./range-c.html"><tt class="refentry literal"><span class="pre">range_c</span></tt></a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./range-c.html">range_c</a></li>
</ul>
</div>
<div class="section" id="bidirectional-see-also">
<div class="section" id="id5">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a> / <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a></p>
<!-- modtime: November 13, 2004 00:39:57 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>, <a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a>, <a class="reference internal" href="./begin.html">begin</a> / <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./back.html">back</a></p>
<!-- Sequences/Concepts//Random Access Sequence |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./forward-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./random-access-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./forward-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./random-access-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+51 -53
View File
@@ -1,25 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: bind</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Prev</a>&nbsp;<a href="./quote.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Back</a>&nbsp;<a href="./quote.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument.html" class="navigation-link">Composition and Argument Binding</a> / <a href="./bind.html" class="navigation-link">bind</a></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Prev</a>&nbsp;<a href="./quote.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Back</a>&nbsp;<a href="./quote.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument-binding.html" class="navigation-link">Composition and Argument Binding</a> / <a href="./bind.html" class="navigation-link">bind</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bind">
<h1><a class="toc-backref" href="./composition-and-argument.html#id457" name="bind">bind</a></h1>
<div class="section" id="bind-synopsis">
<h1><a class="toc-backref" href="./composition-and-argument-binding.html#id1531">bind</a></h1>
<div class="section" id="id929">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename F
&gt;
struct bind0
@@ -28,7 +25,7 @@ struct bind0
// <em>...</em>
};
template&lt;
template&lt;
typename F, typename A1
&gt;
struct bind1
@@ -39,7 +36,7 @@ struct bind1
<em>...</em>
template&lt;
template&lt;
typename F, typename A1,<em>...</em> typename An
&gt;
struct <a href="./bind.html" class="identifier">bind</a><em>n</em>
@@ -48,7 +45,7 @@ struct <a href="./bind.html" class="identifier">bind</a><em>n</em>
// <em>...</em>
};
template&lt;
template&lt;
typename F
, typename A1 = <em>unspecified</em>
<em>...</em>
@@ -61,40 +58,40 @@ struct <a href="./bind.html" class="identifier">bind</a>
};
</pre>
</div>
<div class="section" id="bind-description">
<div class="section" id="id930">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./bind.html" class="identifier">bind</a></span></tt> is a higher-order primitive for <a class="reference" href="./metafunction-class.html">Metafunction Class</a> composition
and argument binding. In essence, it's a compile-time counterpart of
the similar run-time functionality provided by <a class="reference" href="http://www.boost.org/libs/bind/bind.html" target="_top">Boost.Bind</a> and <a class="reference" href="http://www.boost.org/libs/lambda/doc/index.html" target="_top">Boost.Lambda</a>
<p><tt class="literal"><span class="pre"><a href="./bind.html" class="identifier">bind</a></span></tt> is a higher-order primitive for <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> composition
and argument binding. In essence, it's a compile-time counterpart of
the similar run-time functionality provided by <a class="reference external" href="http://www.boost.org/libs/bind/bind.html" target="_top">Boost.Bind</a> and <a class="reference external" href="http://www.boost.org/libs/lambda/doc/index.html" target="_top">Boost.Lambda</a>
libraries.</p>
</div>
<div class="section" id="bind-header">
<div class="section" id="id931">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/bind.hpp" class="header">boost/mpl/bind.hpp</a>&gt;
</pre>
</div>
<div class="section" id="bind-model-of">
<div class="section" id="id932">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./metafunction-class.html">Metafunction Class</a></p>
<p><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></p>
</div>
<div class="section" id="bind-parameters">
<div class="section" id="id933">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">F</span></tt></td>
<td><a class="reference" href="./metafunction-class.html">Metafunction Class</a></td>
<td><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></td>
<td>An metafunction class to perform binding on.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">A1</span></tt>,... <tt class="literal"><span class="pre">An</span></tt></td>
@@ -104,22 +101,22 @@ libraries.</p>
</tbody>
</table>
</div>
<div class="section" id="bind-expression-semantics">
<div class="section" id="id934">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<p>For any <a class="reference internal" href="./metafunction-class.html">Metafunction Class</a> <tt class="literal"><span class="pre">f</span></tt> and arbitrary types <tt class="literal"><span class="pre">a1</span></tt>,... <tt class="literal"><span class="pre">an</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./bind.html" class="identifier">bind</a>&lt;f,a1,...a<em>n</em>&gt; g;
typedef <a href="./bind.html" class="identifier">bind</a><em>n</em>&lt;f,a1,...a<em>n</em>&gt; g;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./metafunction-class.html">Metafunction Class</a></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></td>
</tr>
</tbody>
</table>
<a class="target" id="bind-semantics" name="bind-semantics"></a><table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" id="bind-semantics" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -127,17 +124,17 @@ typedef <a href="./bind.html" class="identifier">bind</a><em>n</em>&lt;f,a1,...a
<pre class="literal-block">
struct g
{
template&lt;
template&lt;
typename U1 = <em>unspecified</em>
<em>...</em>
, typename U<em>n</em> = <em>unspecified</em>
&gt;
struct <a href="./apply.html" class="identifier">apply</a>
: <a href="./apply-wrap.html" class="identifier">apply_wrap</a><em>n</em>&lt;
typename h0&lt;f,U1,<em>...</em>U<em>n</em>&gt;::type
, typename h1&lt;a1,U1,<em>...</em>U<em>n</em>&gt;::type
typename h0&lt;f,U1,<em>...</em>U<em>n</em>&gt;::type
, typename h1&lt;a1,U1,<em>...</em>U<em>n</em>&gt;::type
<em>...</em>
, typename h<em>n</em>&lt;a<em>n</em>,U1,<em>...</em>U<em>n</em>&gt;::type
, typename h<em>n</em>&lt;a<em>n</em>,U1,<em>...</em>U<em>n</em>&gt;::type
>
{
};
@@ -150,14 +147,14 @@ template&lt; typename X, typename U1,<em>...</em> typename U<em>n</em> &gt; stru
{
};
</pre>
<p>if <tt class="literal"><span class="pre">f</span></tt> or <tt class="literal"><span class="pre">a</span></tt><em>k</em> is a <a class="reference" href="./terminology.html#bind-expression">bind expression</a> or a <a class="reference" href="./placeholders.html">placeholder</a>, and</p>
<p>if <tt class="literal"><span class="pre">f</span></tt> or <tt class="literal"><span class="pre">a</span></tt><em>k</em> is a <a class="reference internal" href="./terminology.html#bind-expression">bind expression</a> or a <a class="reference internal" href="./placeholders.html#placeholder">placeholder</a>, and</p>
<pre class="literal-block">
template&lt; typename X, typename U1,<em>...</em> typename U<em>n</em> &gt; struct h<em>k</em>
{
typedef X type;
};
</pre>
<p class="last">otherwise. [<em>Note:</em> Every <tt class="literal"><span class="pre">n</span></tt>th appearance of the <a class="reference" href="./placeholders.html">unnamed placeholder</a>
<p class="last">otherwise. [<em>Note:</em> Every <tt class="literal"><span class="pre">n</span></tt>th appearance of the <a class="reference internal" href="./placeholders.html">unnamed placeholder</a>
in the <tt class="literal"><span class="pre"><a href="./bind.html" class="identifier">bind</a>&lt;f,a1,...an&gt;</span></tt> specialization is replaced with the corresponding
numbered placeholder <tt class="literal"><span class="pre">_</span></tt><em>n</em><em>end note</em>]</p>
</td>
@@ -165,7 +162,7 @@ numbered placeholder <tt class="literal"><span class="pre">_</span></tt><em>n</e
</tbody>
</table>
</div>
<div class="section" id="bind-example">
<div class="section" id="id936">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
struct f1
@@ -185,26 +182,26 @@ struct f5
};
};
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">1</span></tt>&lt;f1,_1&gt;
, int
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">1</span></tt>&lt;f1,<a href="./placeholders.html" class="identifier">_1</a>&gt;
, int
&gt;::type r11;
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">1</span></tt>&lt;f1,_5&gt;
, void,void,void,void,int
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">1</span></tt>&lt;f1,<a href="./placeholders.html" class="identifier">_5</a>&gt;
, void,void,void,void,int
&gt;::type r12;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;r11,int&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;r12,int&gt; ));
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">5</span></tt>&lt;f5,_1,_2,_3,_4,_5&gt;
, void,void,void,void,int
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">5</span></tt>&lt;f5,<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>,<a href="./placeholders.html" class="identifier">_3</a>,<a href="./placeholders.html" class="identifier">_4</a>,<a href="./placeholders.html" class="identifier">_5</a>&gt;
, void,void,void,void,int
&gt;::type r51;
typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">5</span></tt>&lt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">5</span></tt>&lt;f5,_5,_4,_3,_2,_1&gt;
<a href="./bind.html" class="identifier">bind</a><tt class="literal"><span class="pre">5</span></tt>&lt;f5,<a href="./placeholders.html" class="identifier">_5</a>,<a href="./placeholders.html" class="identifier">_4</a>,<a href="./placeholders.html" class="identifier">_3</a>,<a href="./placeholders.html" class="identifier">_2</a>,<a href="./placeholders.html" class="identifier">_1</a>&gt;
, int,void,void,void,void
&gt;::type r52;
@@ -212,16 +209,17 @@ typedef <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;r52,int&gt; ));
</pre>
</div>
<div class="section" id="bind-see-also">
<div class="section" id="id937">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./composition-and-argument.html">Composition and Argument Binding</a>, <a class="reference" href="./invocation.html">invocation</a>, <a class="reference" href="./placeholders.html">Placeholders</a>, <a class="refentry reference" href="./lambda.html"><tt class="refentry literal"><span class="pre">lambda</span></tt></a>, <a class="refentry reference" href="./quote.html"><tt class="refentry literal"><span class="pre">quote</span></tt></a>,
<a class="refentry reference" href="./protect.html"><tt class="refentry literal"><span class="pre">protect</span></tt></a>, <a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a>, <a class="refentry reference" href="./apply-wrap.html"><tt class="refentry literal"><span class="pre">apply_wrap</span></tt></a></p>
<!-- modtime: November 13, 2004 01:59:44 +0000 -->
<p><a class="reference internal" href="./composition-and-argument-binding.html">Composition and Argument Binding</a>, <a class="reference internal" href="./invocation.html">invocation</a>, <a class="reference internal" href="./placeholders.html">Placeholders</a>, <a class="reference internal" href="./lambda.html">lambda</a>, <a class="reference internal" href="./quote.html">quote</a>,
<a class="reference internal" href="./protect.html">protect</a>, <a class="reference internal" href="./apply.html">apply</a>, <a class="reference internal" href="./apply-wrap.html">apply_wrap</a></p>
<!-- Metafunctions/Composition and Argument Binding//quote |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Prev</a>&nbsp;<a href="./quote.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Back</a>&nbsp;<a href="./quote.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Prev</a>&nbsp;<a href="./quote.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./lambda.html" class="navigation-link">Back</a>&nbsp;<a href="./quote.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./composition-and-argument-binding.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: bitand_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./bitwise-operations.html" class="navigation-link">Bitwise Operations</a> / <a href="./bitand.html" class="navigation-link">bitand_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bitand">
<h1><a class="toc-backref" href="./bitwise-operations.html#id480" name="bitand">bitand_</a></h1>
<div class="section" id="bitand-synopsis">
<h1><a class="toc-backref" href="./bitwise-operations.html#id1554">bitand_</a></h1>
<div class="section" id="id1089">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -32,58 +29,59 @@ struct <a href="./bitand.html" class="identifier">bitand_</a>
};
</pre>
</div>
<div class="section" id="bitand-description">
<div class="section" id="id1090">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of <em>bitwise and</em> (<tt class="literal"><span class="pre">&amp;</span></tt>) operation of its arguments.</p>
</div>
<div class="section" id="bitand-header">
<div class="section" id="id1091">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/bitand.hpp" class="header">boost/mpl/bitand.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/bitwise.hpp" class="header">boost/mpl/bitwise.hpp</a>&gt;
</pre>
</div>
<div class="section" id="bitand-model-of">
<div class="section" id="id1092">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="bitand-parameters">
<div class="section" id="id1093">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="bitand-expression-semantics">
<div class="section" id="id1094">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<pre class="literal-block">
typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -91,8 +89,8 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;
typeof(c1::value &amp; c2::value)
, ( c1::value &amp; c2::value )
&gt; c;
typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
</td>
</tr>
@@ -102,11 +100,12 @@ typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c,c3,<em>...</
<pre class="literal-block">
typedef <a href="./bitand.html" class="identifier">bitand_</a>&lt;c1,<em>...</em>c<em>n</em>&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -117,11 +116,11 @@ struct r : <a href="./bitand.html" class="identifier">bitand_</a>&lt;c1,<em>...<
</tbody>
</table>
</div>
<div class="section" id="bitand-complexity">
<div class="section" id="id1095">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="bitand-example">
<div class="section" id="id1096">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigned,0&gt; u0;
@@ -138,15 +137,16 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigne
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./bitand.html" class="identifier">bitand_</a>&lt;u8,uffffffff&gt;::value), ==, 8 );
</pre>
</div>
<div class="section" id="bitand-see-also">
<div class="section" id="id1097">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./bitor.html"><tt class="refentry literal"><span class="pre">bitor_</span></tt></a>, <a class="refentry reference" href="./bitxor.html"><tt class="refentry literal"><span class="pre">bitxor_</span></tt></a>, <a class="refentry reference" href="./shift-left.html"><tt class="refentry literal"><span class="pre">shift_left</span></tt></a></p>
<!-- modtime: November 10, 2004 04:44:32 +0000 -->
<p><a class="reference internal" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./bitor.html">bitor_</a>, <a class="reference internal" href="./bitxor.html">bitxor_</a>, <a class="reference internal" href="./shift-left.html">shift_left</a></p>
<!-- Metafunctions/Bitwise Operations//bitor_ -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./bitwise-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./bitor.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./bitor.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./bitwise-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: bitor_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./bitwise-operations.html" class="navigation-link">Bitwise Operations</a> / <a href="./bitor.html" class="navigation-link">bitor_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bitor">
<h1><a class="toc-backref" href="./bitwise-operations.html#id481" name="bitor">bitor_</a></h1>
<div class="section" id="bitor-synopsis">
<h1><a class="toc-backref" href="./bitwise-operations.html#id1555">bitor_</a></h1>
<div class="section" id="id1098">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -32,58 +29,59 @@ struct <a href="./bitor.html" class="identifier">bitor_</a>
};
</pre>
</div>
<div class="section" id="bitor-description">
<div class="section" id="id1099">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of <em>bitwise or</em> (<tt class="literal"><span class="pre">|</span></tt>) operation of its arguments.</p>
</div>
<div class="section" id="bitor-header">
<div class="section" id="id1100">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/bitor.hpp" class="header">boost/mpl/bitor.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/bitwise.hpp" class="header">boost/mpl/bitwise.hpp</a>&gt;
</pre>
</div>
<div class="section" id="bitor-model-of">
<div class="section" id="id1101">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="bitor-parameters">
<div class="section" id="id1102">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="bitor-expression-semantics">
<div class="section" id="id1103">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<pre class="literal-block">
typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -91,8 +89,8 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;
typeof(c1::value | c2::value)
, ( c1::value | c2::value )
&gt; c;
typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
</td>
</tr>
@@ -102,11 +100,12 @@ typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c,c3,<em>...</em
<pre class="literal-block">
typedef <a href="./bitor.html" class="identifier">bitor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -117,11 +116,11 @@ struct r : <a href="./bitor.html" class="identifier">bitor_</a>&lt;c1,<em>...</e
</tbody>
</table>
</div>
<div class="section" id="bitor-complexity">
<div class="section" id="id1104">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="bitor-example">
<div class="section" id="id1105">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigned,0&gt; u0;
@@ -138,15 +137,16 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigne
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./bitor.html" class="identifier">bitor_</a>&lt;u8,uffffffff&gt;::value), ==, 0xffffffff );
</pre>
</div>
<div class="section" id="bitor-see-also">
<div class="section" id="id1106">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./bitand.html"><tt class="refentry literal"><span class="pre">bitand_</span></tt></a>, <a class="refentry reference" href="./bitxor.html"><tt class="refentry literal"><span class="pre">bitxor_</span></tt></a>, <a class="refentry reference" href="./shift-left.html"><tt class="refentry literal"><span class="pre">shift_left</span></tt></a></p>
<!-- modtime: November 10, 2004 05:04:32 +0000 -->
<p><a class="reference internal" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./bitand.html">bitand_</a>, <a class="reference internal" href="./bitxor.html">bitxor_</a>, <a class="reference internal" href="./shift-left.html">shift_left</a></p>
<!-- Metafunctions/Bitwise Operations//bitxor_ -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./bitand.html" class="navigation-link">Prev</a>&nbsp;<a href="./bitxor.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./bitand.html" class="navigation-link">Back</a>&nbsp;<a href="./bitxor.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./bitwise-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+11 -13
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Bitwise Operations</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,19 +12,20 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./bitwise-operations.html" class="navigation-link">Bitwise Operations</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bitwise-operations">
<h1><a class="toc-backref" href="./metafunctions.html#id479" name="bitwise-operations">Bitwise Operations</a></h1>
<a class="target" id="id248" name="id248"></a><!-- modtime: November 08, 2004 08:24:29 +0000 -->
<!-- Metafunctions/Bitwise Operations//bitand_ -->
<h1><a class="toc-backref" href="./metafunctions.html#id1553">Bitwise Operations</a></h1>
<span class="target" id="label-metafunctions-bitwise-operations"></span><!-- Metafunctions/Bitwise Operations//bitand_ -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./bitand.html" id="id480" name="id480">bitand_</a></li>
<li><a class="reference" href="./bitor.html" id="id481" name="id481">bitor_</a></li>
<li><a class="reference" href="./bitxor.html" id="id482" name="id482">bitxor_</a></li>
<li><a class="reference" href="./shift-left.html" id="id483" name="id483">shift_left</a></li>
<li><a class="reference" href="./shift-right.html" id="id484" name="id484">shift_right</a></li>
<li><a class="reference internal" href="./bitand.html" id="id1554">bitand_</a></li>
<li><a class="reference internal" href="./bitor.html" id="id1555">bitor_</a></li>
<li><a class="reference internal" href="./bitxor.html" id="id1556">bitxor_</a></li>
<li><a class="reference internal" href="./shift-left.html" id="id1557">shift_left</a></li>
<li><a class="reference internal" href="./shift-right.html" id="id1558">shift_right</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./not.html" class="navigation-link">Prev</a>&nbsp;<a href="./bitand.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Back</a>&nbsp;<a href="./trivial.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: bitxor_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./bitwise-operations.html" class="navigation-link">Bitwise Operations</a> / <a href="./bitxor.html" class="navigation-link">bitxor_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bitxor">
<h1><a class="toc-backref" href="./bitwise-operations.html#id482" name="bitxor">bitxor_</a></h1>
<div class="section" id="bitxor-synopsis">
<h1><a class="toc-backref" href="./bitwise-operations.html#id1556">bitxor_</a></h1>
<div class="section" id="id1107">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -32,58 +29,59 @@ struct <a href="./bitxor.html" class="identifier">bitxor_</a>
};
</pre>
</div>
<div class="section" id="bitxor-description">
<div class="section" id="id1108">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of <em>bitwise xor</em> (<tt class="literal"><span class="pre">^</span></tt>) operation of its arguments.</p>
</div>
<div class="section" id="bitxor-header">
<div class="section" id="id1109">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/bitxor.hpp" class="header">boost/mpl/bitxor.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/bitwise.hpp" class="header">boost/mpl/bitwise.hpp</a>&gt;
</pre>
</div>
<div class="section" id="bitxor-model-of">
<div class="section" id="id1110">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="bitxor-parameters">
<div class="section" id="id1111">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="bitxor-expression-semantics">
<div class="section" id="id1112">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<pre class="literal-block">
typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -91,8 +89,8 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;
typeof(c1::value ^ c2::value)
, ( c1::value ^ c2::value )
&gt; c;
typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
</td>
</tr>
@@ -102,11 +100,12 @@ typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c,c3,<em>...</
<pre class="literal-block">
typedef <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c1,<em>...</em>c<em>n</em>&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -117,11 +116,11 @@ struct r : <a href="./bitxor.html" class="identifier">bitxor_</a>&lt;c1,<em>...<
</tbody>
</table>
</div>
<div class="section" id="bitxor-complexity">
<div class="section" id="id1113">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="bitxor-example">
<div class="section" id="id1114">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigned,0&gt; u0;
@@ -139,15 +138,16 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;unsigne
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./bitxor.html" class="identifier">bitxor_</a>&lt;u8,uffffffff&gt;::value), ==, 0xffffffff ^ 8 );
</pre>
</div>
<div class="section" id="bitxor-see-also">
<div class="section" id="id1115">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./bitand.html"><tt class="refentry literal"><span class="pre">bitand_</span></tt></a>, <a class="refentry reference" href="./bitor.html"><tt class="refentry literal"><span class="pre">bitor_</span></tt></a>, <a class="refentry reference" href="./shift-left.html"><tt class="refentry literal"><span class="pre">shift_left</span></tt></a></p>
<!-- modtime: November 13, 2004 02:03:30 +0000 -->
<p><a class="reference internal" href="./bitwise-operations.html">Bitwise Operations</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./bitand.html">bitand_</a>, <a class="reference internal" href="./bitor.html">bitor_</a>, <a class="reference internal" href="./shift-left.html">shift_left</a></p>
<!-- Metafunctions/Bitwise Operations//shift_left -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./bitor.html" class="navigation-link">Prev</a>&nbsp;<a href="./shift-left.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./bitor.html" class="navigation-link">Back</a>&nbsp;<a href="./shift-left.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./bitwise-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+28 -30
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: bool_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./numeric.html" class="navigation-link">Numeric</a> / <a href="./bool.html" class="navigation-link">bool_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="bool">
<h1><a class="toc-backref" href="./numeric.html#id500" name="bool">bool_</a></h1>
<div class="section" id="bool-synopsis">
<h1><a class="toc-backref" href="./numeric.html#id1576">bool_</a></h1>
<div class="section" id="id1222">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,36 +25,36 @@ struct <a href="./bool.html" class="identifier">bool_</a>
// ...
};
typedef <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt; true_;
typedef <a href="./bool.html" class="identifier">bool_</a>&lt;false&gt; false_;
typedef <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt; <a href="./bool.html" class="identifier">true_</a>;
typedef <a href="./bool.html" class="identifier">bool_</a>&lt;false&gt; <a href="./bool.html" class="identifier">false_</a>;
</pre>
</div>
<div class="section" id="bool-description">
<div class="section" id="id1223">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A boolean <a class="reference" href="./integral-constant.html">Integral Constant</a> wrapper.</p>
<p>A boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> wrapper.</p>
</div>
<div class="section" id="bool-header">
<div class="section" id="id1224">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/bool.hpp" class="header">boost/mpl/bool.hpp</a>&gt;
</pre>
</div>
<div class="section" id="bool-model-of">
<div class="section" id="id1225">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./integral-constant.html">Integral Constant</a></p>
<p><a class="reference internal" href="./integral-constant.html">Integral Constant</a></p>
</div>
<div class="section" id="bool-parameters">
<div class="section" id="id1226">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="42%" />
<col width="37%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -68,48 +65,49 @@ typedef <a href="./bool.html" class="identifier">bool_</a>&lt;false&gt; false_;
</tbody>
</table>
</div>
<div class="section" id="bool-expression-semantics">
<div class="section" id="id1227">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./integral-constant.html">Integral Constant</a>.</p>
where they differ from, or are not defined in <a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
<p>For arbitrary integral constant <tt class="literal"><span class="pre">c</span></tt>:</p>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="24%" />
<col width="76%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./bool.html" class="identifier">bool_</a>&lt;c&gt;</span></tt></td>
<td>An <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">x</span></tt> such that <tt class="literal"><span class="pre">x::value</span> <span class="pre">==</span> <span class="pre">c</span></tt>
<td>An <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">x</span></tt> such that <tt class="literal"><span class="pre">x::value</span> <span class="pre">==</span> <span class="pre">c</span></tt>
and <tt class="literal"><span class="pre">x::<a href="./value-type.html" class="identifier">value_type</a></span></tt> is identical to <tt class="literal"><span class="pre">bool</span></tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="bool-example">
<div class="section" id="id1228">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;::<a href="./value-type.html" class="identifier">value_type</a>, bool &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;, <a class="reference" href="./bool.html"><tt class="literal"><span class="pre">true_</span></tt></a> &gt; )); }
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;, <a href="./bool.html" class="identifier">true_</a> &gt; )); }
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;::type, <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt; &gt; ));
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;::value, ==, true );
assert( <a href="./bool.html" class="identifier">bool_</a>&lt;true&gt;() == true );
</pre>
</div>
<div class="section" id="bool-see-also">
<div class="section" id="id1229">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./data-types.html">Data Types</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./int.html"><tt class="refentry literal"><span class="pre">int_</span></tt></a>, <a class="refentry reference" href="./long.html"><tt class="refentry literal"><span class="pre">long_</span></tt></a>, <a class="refentry reference" href="./integral-c.html"><tt class="refentry literal"><span class="pre">integral_c</span></tt></a></p>
<!-- modtime: November 10, 2004 04:44:19 +0000 -->
<p><a class="reference internal" href="./data-types.html">Data Types</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./int.html">int_</a>, <a class="reference internal" href="./long.html">long_</a>, <a class="reference internal" href="./integral-c.html">integral_c</a></p>
<!-- Data Types/Numeric//int_ |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Prev</a>&nbsp;<a href="./int.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./int.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -1,28 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Broken Compiler Workarounds</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./limit-unrolling.html" class="navigation-link">Prev</a>&nbsp;<a href="./aux-lambda-support.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./broken-compiler.html" class="navigation-link">Broken Compiler Workarounds</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./broken-compiler-workarounds.html" class="navigation-link">Broken Compiler Workarounds</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="broken-compiler">
<h1><a class="toc-backref" href="./macros.html#id527" name="broken-compiler">Broken Compiler Workarounds</a></h1>
<a class="target" id="label-macros-broken" name="label-macros-broken"></a><!-- Macros/Broken Compiler Workarounds//BOOST_MPL_AUX_LAMBDA_SUPPORT -->
<div class="section" id="broken-compiler-workarounds">
<h1><a class="toc-backref" href="./macros.html#id1608">Broken Compiler Workarounds</a></h1>
<!-- Macros/Broken Compiler Workarounds//BOOST_MPL_AUX_LAMBDA_SUPPORT -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./aux-lambda-support.html" id="id528" name="id528">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></li>
<li><a class="reference internal" href="./aux-lambda-support.html" id="id1609">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./limit-unrolling.html" class="navigation-link">Prev</a>&nbsp;<a href="./aux-lambda-support.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+137
View File
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: c_str</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./string-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./string-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./string-operations.html" class="navigation-link">String Operations</a> / <a href="./c-str.html" class="navigation-link">c_str</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="c-str">
<h1><a class="toc-backref" href="./string-operations.html#id1562">c_str</a></h1>
<div class="section" id="id1137">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
typename Sequence
&gt;
struct <a href="./c-str.html" class="identifier">c_str</a>
{
typedef <em>unspecified</em> type;
static char const value[];
};
</pre>
</div>
<div class="section" id="id1138">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./c-str.html" class="identifier">c_str</a></span></tt> converts the <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> of <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">Sequence</span></tt>
into a null-terminated byte string containing an equivalent sequence.</p>
</div>
<div class="section" id="id1139">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/string.hpp" class="header">boost/mpl/string.hpp</a>&gt;
</pre>
</div>
<div class="section" id="id1140">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference internal" href="./metafunction.html">Metafunction</a></p>
</div>
<div class="section" id="id1141">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> of
<a class="reference internal" href="./integral-constant.html">Integral Constant</a>s</td>
<td>A sequence to be converted into a
null-terminated byte string.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1142">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> of <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">s</span></tt>,</p>
<pre class="compound-middle literal-block">
<a href="./c-str.html" class="identifier">c_str</a>&lt;s&gt;::value;
</pre>
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A null-terminated byte string.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span> <span class="pre">&lt;=</span> <span class="pre">BOOST_MPL_STRING_MAX_LENGTH</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
char const value[] = {
<a href="./at.html" class="identifier">at</a>&lt;s, 0&gt;::type::value
, ...
, <a href="./at.html" class="identifier">at</a>&lt;s, <a href="./size.html" class="identifier">size</a>&lt;s&gt;::value-1&gt;::type::value
, '\0'
};
</pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="id1143">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<table border="1" class="docutils table">
<colgroup>
<col width="47%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Sequence archetype</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>Linear.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1144">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;char,'h','e','l','l','o'&gt; hello;
assert( 0 == std::strcmp( <a href="./c-str.html" class="identifier">c_str</a>&lt;hello&gt;::value, &quot;hello&quot; ) );
</pre>
</div>
<div class="section" id="id1145">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./string.html">string</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./string-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./string-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2009 Eric Niebler</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
-49
View File
@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Concepts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Prev</a>&nbsp;<a href="./components.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./components.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./categorized-index.html" class="navigation-link">Categorized Index</a> / <a href="./categorized-concepts.html" class="navigation-link">Concepts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="categorized-concepts">
<h1><a class="toc-backref" href="./categorized-index.html#id531" name="categorized-concepts">Concepts</a></h1>
<ul class="simple">
<li><a class="reference" href="./associative-sequence.html">Associative Sequence</a></li>
<li><a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a></li>
<li><a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a></li>
<li><a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a></li>
<li><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></li>
<li><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></li>
<li><a class="reference" href="./forward-iterator.html">Forward Iterator</a></li>
<li><a class="reference" href="./forward-sequence.html">Forward Sequence</a></li>
<li><a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li>
<li><a class="reference" href="./inserter.html">Inserter</a></li>
<li><a class="reference" href="./integral-constant.html">Integral Constant</a></li>
<li><a class="reference" href="./integral-sequence-wrapper.html">Integral Sequence Wrapper</a></li>
<li><a class="reference" href="./lambda-expression.html">Lambda Expression</a></li>
<li><a class="reference" href="./metafunction.html">Metafunction</a></li>
<li><a class="reference" href="./metafunction-class.html">Metafunction Class</a></li>
<li><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></li>
<li><a class="reference" href="./placeholder-expression.html">Placeholder Expression</a></li>
<li><a class="reference" href="./random-access-iterator.html">Random Access Iterator</a></li>
<li><a class="reference" href="./random-access-sequence.html">Random Access Sequence</a></li>
<li><a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a></li>
<li><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></li>
<li><a class="reference" href="./trivial-metafunction.html">Trivial Metafunction</a></li>
<li><a class="reference" href="./variadic-sequence.html">Variadic Sequence</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Prev</a>&nbsp;<a href="./components.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./components.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
</html>
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Concepts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Prev</a>&nbsp;<a href="./components.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./components.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./categorized-index.html" class="navigation-link">Categorized Index</a> / <a href="./categorized-index-concepts.html" class="navigation-link">Concepts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="id1391">
<h1><a class="toc-backref" href="./categorized-index.html#id1612"><a class="subsection-title" href="#concepts" name="concepts">Concepts</a></a></h1>
<ul class="simple" id="label-categorized-index-concepts">
<li><a class="reference internal" href="./associative-sequence.html">Associative Sequence</a></li>
<li><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></li>
<li><a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a></li>
<li><a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a></li>
<li><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></li>
<li><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></li>
<li><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></li>
<li><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></li>
<li><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li>
<li><a class="reference internal" href="./inserter.html">Inserter</a></li>
<li><a class="reference internal" href="./integral-constant.html">Integral Constant</a></li>
<li><a class="reference internal" href="./integral-sequence-wrapper.html">Integral Sequence Wrapper</a></li>
<li><a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></li>
<li><a class="reference internal" href="./metafunction.html">Metafunction</a></li>
<li><a class="reference internal" href="./metafunction-class.html">Metafunction Class</a></li>
<li><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></li>
<li><a class="reference internal" href="./placeholder-expression.html">Placeholder Expression</a></li>
<li><a class="reference internal" href="./random-access-iterator.html">Random Access Iterator</a></li>
<li><a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a></li>
<li><a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a></li>
<li><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></li>
<li><a class="reference internal" href="./trivial-metafunction.html">Trivial Metafunction</a></li>
<li><a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Prev</a>&nbsp;<a href="./components.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./components.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+10 -11
View File
@@ -1,28 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Categorized Index</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Prev</a>&nbsp;<a href="./categorized-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Back</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Prev</a>&nbsp;<a href="./categorized-index-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Back</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./categorized-index.html" class="navigation-link">Categorized Index</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="categorized-index">
<h1><a class="toc-backref" href="../refmanual.html#id530" name="categorized-index">Categorized Index</a></h1>
<a class="target" id="label-categorized-index" name="label-categorized-index"></a><a class="target" id="categorized" name="categorized"></a><ul class="toc simple" id="outline">
<li><a class="reference" href="./categorized-concepts.html" id="id531" name="id531">Concepts</a></li>
<li><a class="reference" href="./components.html" id="id532" name="id532">Components</a></li>
<h1><a class="toc-backref" href="../refmanual.html#id1611">Categorized Index</a></h1>
<ul class="toc simple" id="outline">
<li><a class="reference internal" href="./categorized-index-concepts.html" id="id1612">Concepts</a></li>
<li><a class="reference internal" href="./components.html" id="id1613">Components</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Prev</a>&nbsp;<a href="./categorized-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Back</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Prev</a>&nbsp;<a href="./categorized-index-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./terminology.html" class="navigation-link">Back</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-has-xxx.html" class="navigation-link">Prev</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-has-xxx.html" class="navigation-link">Back</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./configuration.html" class="navigation-link">Configuration</a> / <a href="./cfg-no-has-xxx-template.html" class="navigation-link">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="boost-mpl-cfg-no-has-xxx-template">
<h1><a class="toc-backref" href="./configuration.html#id1600">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a></h1>
<div class="section" id="id1350">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
// #define <a href="./cfg-no-has-xxx-template.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>
</pre>
</div>
<div class="section" id="id1351">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./cfg-no-has-xxx-template.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a></span></tt> is a boolean configuration
macro signaling availability of the <a class="reference internal" href="./has-xxx-template-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a> /
<a class="reference internal" href="./has-xxx-template-named-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a> introspection macros'
functionality on a particular compiler.</p>
</div>
<div class="section" id="id1352">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./configuration.html">Configuration</a>, <a class="reference internal" href="./has-xxx-template-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a>, <a class="reference internal" href="./has-xxx-template-named-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a></p>
<!-- Macros/Configuration//BOOST_MPL_LIMIT_METAFUNCTION_ARITY |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-has-xxx.html" class="navigation-link">Prev</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-has-xxx.html" class="navigation-link">Back</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"></div></td></tr></table></body>
</html>
+20 -18
View File
@@ -1,43 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_CFG_NO_HAS_XXX</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-preprocessed.html" class="navigation-link">Prev</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-preprocessed.html" class="navigation-link">Back</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-has-xxx-template.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Back</a>&nbsp;<a href="./cfg-no-has-xxx-template.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./configuration.html" class="navigation-link">Configuration</a> / <a href="./cfg-no-has-xxx.html" class="navigation-link">BOOST_MPL_CFG_NO_HAS_XXX</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="cfg-no-has-xxx">
<h1><a class="toc-backref" href="./configuration.html#id520" name="cfg-no-has-xxx">BOOST_MPL_CFG_NO_HAS_XXX</a></h1>
<div class="section" id="configuration-cfg-synopsis">
<div class="section" id="boost-mpl-cfg-no-has-xxx">
<h1><a class="toc-backref" href="./configuration.html#id1599">BOOST_MPL_CFG_NO_HAS_XXX</a></h1>
<div class="section" id="id1347">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
// #define <a href="./cfg-no-has-xxx.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX</a>
</pre>
</div>
<div class="section" id="configuration-cfg-description">
<div class="section" id="id1348">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./cfg-no-has-xxx.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX</a></span></tt> is an boolean configuration macro
signaling availability of the <a class="refentry reference" href="./has-xxx-trait-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_DEF</span></tt></a> /
<a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</span></tt></a> introspection macros' functionality
<p><tt class="literal"><span class="pre"><a href="./cfg-no-has-xxx.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX</a></span></tt> is an boolean configuration macro
signaling availability of the <a class="reference internal" href="./has-xxx-trait-def.html">BOOST_MPL_HAS_XXX_TRAIT_DEF</a> /
<a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a> introspection macros' functionality
on a particular compiler.</p>
</div>
<div class="section" id="configuration-cfg-see-also">
<div class="section" id="id1349">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./macros.html">Macros</a>, <a class="reference" href="./configuration.html">Configuration</a>, <a class="refentry reference" href="./has-xxx-trait-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_DEF</span></tt></a>, <a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</span></tt></a></p>
<!-- modtime: November 10, 2004 04:44:13 +0000 -->
<!-- Macros/Configuration//BOOST_MPL_LIMIT_METAFUNCTION_ARITY |20 -->
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./configuration.html">Configuration</a>, <a class="reference internal" href="./has-xxx-trait-def.html">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>, <a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></p>
<!-- Macros/Configuration//BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE |20 -->
<!-- Copyright Daniel Walker 2007. -->
<!-- Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-preprocessed.html" class="navigation-link">Prev</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-preprocessed.html" class="navigation-link">Back</a>&nbsp;<a href="./limit-metafunction-arity.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-has-xxx-template.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Back</a>&nbsp;<a href="./cfg-no-has-xxx-template.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -1,49 +1,47 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-has-xxx.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./cfg-no-has-xxx.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./configuration.html" class="navigation-link">Configuration</a> / <a href="./cfg-no-preprocessed.html" class="navigation-link">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./configuration.html" class="navigation-link">Configuration</a> / <a href="./cfg-no-preprocessed-headers.html" class="navigation-link">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="cfg-no-preprocessed">
<h1><a class="toc-backref" href="./configuration.html#id519" name="cfg-no-preprocessed">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></h1>
<a class="target" id="id294" name="id294"></a><div class="section" id="cfg-synopsis">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<div class="section" id="boost-mpl-cfg-no-preprocessed-headers">
<h1><a class="toc-backref" href="./configuration.html#id1598">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></h1>
<div class="section" id="id1343">
<span id="boost-mpl-cfg-no-preprocessed"></span><h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
// #define <a href="./cfg-no-preprocessed.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a>
// #define <a href="./cfg-no-preprocessed-headers.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a>
</pre>
</div>
<div class="section" id="cfg-description">
<div class="section" id="id1344">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./cfg-no-preprocessed.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></span></tt> is an boolean configuration macro
<p><tt class="literal"><span class="pre"><a href="./cfg-no-preprocessed-headers.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></span></tt> is an boolean configuration macro
regulating library's internal use of preprocessed headers. When defined, it
instructs the MPL to discard the pre-generated headers found in
<tt class="literal"><span class="pre">boost/mpl/aux_/preprocessed</span></tt> directory and use <a class="reference" href="http://boost-consulting.com/tmpbook/preprocessor.html" target="_top">preprocessor
metaprogramming</a> techniques to generate the necessary versions of the
instructs the MPL to discard the pre-generated headers found in
<tt class="literal"><span class="pre">boost/mpl/aux_/preprocessed</span></tt> directory and use <a class="reference external" href="http://boost-consulting.com/tmpbook/preprocessor.html" target="_top">preprocessor
metaprogramming</a> techniques to generate the necessary versions of the
library components on the fly.</p>
<p>In this implementation of the library, the macro is not defined by default.
To change the default configuration, define
<tt class="literal"><span class="pre"><a href="./cfg-no-preprocessed.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></span></tt> before including any library
To change the default configuration, define
<tt class="literal"><span class="pre"><a href="./cfg-no-preprocessed-headers.html" class="identifier">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></span></tt> before including any library
header.</p>
</div>
<div class="section" id="cfg-see-also">
<div class="section" id="id1346">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./macros.html">Macros</a>, <a class="reference" href="./configuration.html">Configuration</a></p>
<!-- modtime: November 15, 2004 01:55:35 +0000 -->
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./configuration.html">Configuration</a></p>
<!-- Macros/Configuration//BOOST_MPL_CFG_NO_HAS_XXX |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-has-xxx.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./cfg-no-has-xxx.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./configuration.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+112
View File
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: char_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-types-miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./numeric.html" class="navigation-link">Numeric</a> / <a href="./char.html" class="navigation-link">char_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="char">
<h1><a class="toc-backref" href="./numeric.html#id1581">char_</a></h1>
<div class="section" id="id1262">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
char N
&gt;
struct <a href="./char.html" class="identifier">char_</a>
{
// <em>unspecified</em>
// ...
};
</pre>
</div>
<div class="section" id="id1263">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An <a class="reference internal" href="./integral-constant.html">Integral Constant</a> wrapper for <tt class="literal"><span class="pre">char</span></tt>.</p>
</div>
<div class="section" id="id1264">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/char.hpp" class="header">boost/mpl/char.hpp</a>&gt;
</pre>
</div>
<div class="section" id="id1265">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference internal" href="./integral-constant.html">Integral Constant</a></p>
</div>
<div class="section" id="id1266">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="42%" />
<col width="37%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">N</span></tt></td>
<td>A character constant</td>
<td>A value to wrap.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1267">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
<p>For arbitrary character constant <tt class="literal"><span class="pre">c</span></tt>:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="24%" />
<col width="76%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./char.html" class="identifier">char_</a>&lt;c&gt;</span></tt></td>
<td>An <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">x</span></tt> such that <tt class="literal"><span class="pre">x::value</span> <span class="pre">==</span> <span class="pre">c</span></tt>
and <tt class="literal"><span class="pre">x::<a href="./value-type.html" class="identifier">value_type</a></span></tt> is identical to <tt class="literal"><span class="pre">char</span></tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1268">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./char.html" class="identifier">char_</a>&lt;'c'&gt; c;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; c::<a href="./value-type.html" class="identifier">value_type</a>, char &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; c::type, c &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./next.html" class="identifier">next</a>&lt; c &gt;::type, <a href="./char.html" class="identifier">char_</a>&lt;'d'&gt; &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./prior.html" class="identifier">prior</a>&lt; c &gt;::type, <a href="./char.html" class="identifier">char_</a>&lt;'b'&gt; &gt; ));
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (c::value), ==, 'c' );
assert( c() == 'c' );
</pre>
</div>
<div class="section" id="id1269">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference internal" href="./data-types.html">Data Types</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./int.html">int_</a>, <a class="reference internal" href="./size-t.html">size_t</a>, <a class="reference internal" href="./integral-c.html">integral_c</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-types-miscellaneous.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2009 Eric Niebler</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+17 -18
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Classes</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,27 +12,29 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./classes.html" class="navigation-link">Classes</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="classes">
<h1><a class="toc-backref" href="./sequences.html#id334" name="classes">Classes</a></h1>
<a class="target" id="label-sequences-classes" name="label-sequences-classes"></a><p>The MPL provides a large number of predefined general-purpose sequence
<h1><a class="toc-backref" href="./sequences.html#id1405">Classes</a></h1>
<p id="label-sequences-classes">The MPL provides a large number of predefined general-purpose sequence
classes covering most of the typical metaprogramming needs out-of-box.</p>
<!-- For all library-supplied sequences a publicly-derived class with no additional
<!-- For all library-supplied sequences a publicly-derived class with no additional
members is equivalent except for type identity. -->
<!-- modtime: October 25, 2004 06:16:07 +0000 -->
<!-- Sequences/Classes//vector |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./vector.html" id="id335" name="id335">vector</a></li>
<li><a class="reference" href="./list.html" id="id336" name="id336">list</a></li>
<li><a class="reference" href="./deque.html" id="id337" name="id337">deque</a></li>
<li><a class="reference" href="./set.html" id="id338" name="id338">set</a></li>
<li><a class="reference" href="./map.html" id="id339" name="id339">map</a></li>
<li><a class="reference" href="./range-c.html" id="id340" name="id340">range_c</a></li>
<li><a class="reference" href="./vector-c.html" id="id341" name="id341">vector_c</a></li>
<li><a class="reference" href="./list-c.html" id="id342" name="id342">list_c</a></li>
<li><a class="reference" href="./set-c.html" id="id343" name="id343">set_c</a></li>
<li><a class="reference internal" href="./vector.html" id="id1406">vector</a></li>
<li><a class="reference internal" href="./list.html" id="id1407">list</a></li>
<li><a class="reference internal" href="./deque.html" id="id1408">deque</a></li>
<li><a class="reference internal" href="./set.html" id="id1409">set</a></li>
<li><a class="reference internal" href="./map.html" id="id1410">map</a></li>
<li><a class="reference internal" href="./range-c.html" id="id1411">range_c</a></li>
<li><a class="reference internal" href="./vector-c.html" id="id1412">vector_c</a></li>
<li><a class="reference internal" href="./list-c.html" id="id1413">list_c</a></li>
<li><a class="reference internal" href="./set-c.html" id="id1414">set_c</a></li>
<li><a class="reference internal" href="./string.html" id="id1415">string</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./variadic-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./vector.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Back</a>&nbsp;<a href="./views.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./sequences.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+31 -31
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: clear</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./clear.html" class="navigation-link">clear</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="clear">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id357" name="clear">clear</a></h1>
<div class="section" id="clear-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1429">clear</a></h1>
<div class="section" id="id211">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,71 +25,73 @@ struct <a href="./clear.html" class="identifier">clear</a>
};
</pre>
</div>
<div class="section" id="clear-description">
<div class="section" id="id212">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an empty sequence <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">Sequence</span></tt>.</p>
<p>Returns an empty sequence <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">Sequence</span></tt>.</p>
</div>
<div class="section" id="clear-header">
<div class="section" id="id213">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/clear.hpp" class="header">boost/mpl/clear.hpp</a>&gt;
</pre>
</div>
<div class="section" id="clear-model-of">
<div class="section" id="id214">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="clear-parameters">
<div class="section" id="id215">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="39%" />
<col width="44%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>A sequence to get an empty &quot;copy&quot; of.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="clear-expression-semantics">
<div class="section" id="id216">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<p>For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type t;
typedef <a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
<pre class="literal-block">
typedef <a href="./erase.html" class="identifier">erase</a>&lt; s, <a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type, <a href="./end.html" class="identifier">end</a>&lt;s&gt;::type &gt;::type t;
</pre>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</td>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first last"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="clear-complexity">
<div class="section" id="id217">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="clear-example">
<div class="section" id="id218">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,1,3,5,7,9,11&gt; odds;
@@ -101,15 +100,16 @@ typedef <a href="./clear.html" class="identifier">clear</a>&lt;odds&gt;::type no
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./empty.html" class="identifier">empty</a>&lt;nothing&gt; ));
</pre>
</div>
<div class="section" id="clear-see-also">
<div class="section" id="id219">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>, <a class="refentry reference" href="./empty.html"><tt class="refentry literal"><span class="pre">empty</span></tt></a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a>, <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a></p>
<!-- modtime: November 13, 2004 01:25:47 +0000 -->
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>, <a class="reference internal" href="./erase.html">erase</a>, <a class="reference internal" href="./empty.html">empty</a>, <a class="reference internal" href="./begin.html">begin</a>, <a class="reference internal" href="./end.html">end</a></p>
<!-- Sequences/Intrinsic Metafunctions//empty -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./begin.html" class="navigation-link">Prev</a>&nbsp;<a href="./empty.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./begin.html" class="navigation-link">Back</a>&nbsp;<a href="./empty.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+12 -14
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Comparisons</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,20 +12,21 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./comparisons.html" class="navigation-link">Comparisons</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="comparisons">
<h1><a class="toc-backref" href="./metafunctions.html#id468" name="comparisons">Comparisons</a></h1>
<a class="target" id="id235" name="id235"></a><!-- modtime: November 08, 2004 06:50:08 +0000 -->
<!-- Metafunctions/Comparisons//less |10 -->
<h1><a class="toc-backref" href="./metafunctions.html#id1542">Comparisons</a></h1>
<span class="target" id="label-metafunctions-comparisons"></span><!-- Metafunctions/Comparisons//less |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./less.html" id="id469" name="id469">less</a></li>
<li><a class="reference" href="./less-equal.html" id="id470" name="id470">less_equal</a></li>
<li><a class="reference" href="./greater.html" id="id471" name="id471">greater</a></li>
<li><a class="reference" href="./greater-equal.html" id="id472" name="id472">greater_equal</a></li>
<li><a class="reference" href="./equal-to.html" id="id473" name="id473">equal_to</a></li>
<li><a class="reference" href="./not-equal-to.html" id="id474" name="id474">not_equal_to</a></li>
<li><a class="reference internal" href="./less.html" id="id1543">less</a></li>
<li><a class="reference internal" href="./less-equal.html" id="id1544">less_equal</a></li>
<li><a class="reference internal" href="./greater.html" id="id1545">greater</a></li>
<li><a class="reference internal" href="./greater-equal.html" id="id1546">greater_equal</a></li>
<li><a class="reference internal" href="./equal-to.html" id="id1547">equal_to</a></li>
<li><a class="reference internal" href="./not-equal-to.html" id="id1548">not_equal_to</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./negate.html" class="navigation-link">Prev</a>&nbsp;<a href="./less.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./arithmetic-operations.html" class="navigation-link">Back</a>&nbsp;<a href="./logical-operations.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+166 -159
View File
@@ -1,176 +1,183 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Components</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-concepts.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index-concepts.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./categorized-index.html" class="navigation-link">Categorized Index</a> / <a href="./components.html" class="navigation-link">Components</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="components">
<h1><a class="toc-backref" href="./categorized-index.html#id532" name="components">Components</a></h1>
<ul class="simple">
<li><a class="refentry reference" href="./assert.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT</span></tt></a></li>
<li><a class="refentry reference" href="./assert-msg.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_MSG</span></tt></a></li>
<li><a class="refentry reference" href="./assert-not.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_NOT</span></tt></a></li>
<li><a class="refentry reference" href="./assert-relation.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_ASSERT_RELATION</span></tt></a></li>
<li><a class="refentry reference" href="./aux-lambda-support.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_AUX_LAMBDA_SUPPORT</span></tt></a></li>
<li><a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a></li>
<li><a class="refentry reference" href="./cfg-no-preprocessed.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</span></tt></a></li>
<li><a class="refentry reference" href="./has-xxx-trait-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_DEF</span></tt></a></li>
<li><a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</span></tt></a></li>
<li><a class="refentry reference" href="./limit-list-size.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_LIST_SIZE</span></tt></a></li>
<li><a class="refentry reference" href="./limit-map-size.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_MAP_SIZE</span></tt></a></li>
<li><a class="refentry reference" href="./limit-metafunction-arity.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</span></tt></a></li>
<li><a class="refentry reference" href="./limit-set-size.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_SET_SIZE</span></tt></a></li>
<li><a class="refentry reference" href="./limit-unrolling.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_UNROLLING</span></tt></a></li>
<li><a class="refentry reference" href="./limit-vector-size.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_LIMIT_VECTOR_SIZE</span></tt></a></li>
<li><a class="refentry reference" href="./placeholders.html"><tt class="refentry literal"><span class="pre">_1</span></tt></a>, <a class="refentry reference" href="./placeholders.html"><tt class="refentry literal"><span class="pre">_2</span></tt></a>, <a class="refentry reference" href="./placeholders.html"><tt class="refentry literal"><span class="pre">_3</span></tt></a>,<em>...</em></li>
<li><a class="refentry reference" href="./accumulate.html"><tt class="refentry literal"><span class="pre">accumulate</span></tt></a></li>
<li><a class="refentry reference" href="./advance.html"><tt class="refentry literal"><span class="pre">advance</span></tt></a></li>
<li><a class="refentry reference" href="./always.html"><tt class="refentry literal"><span class="pre">always</span></tt></a></li>
<li><a class="refentry reference" href="./and.html"><tt class="refentry literal"><span class="pre">and_</span></tt></a></li>
<li><a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a></li>
<li><a class="refentry reference" href="./apply-wrap.html"><tt class="refentry literal"><span class="pre">apply_wrap</span></tt></a></li>
<li><a class="refentry reference" href="./arg.html"><tt class="refentry literal"><span class="pre">arg</span></tt></a></li>
<li><a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a></li>
<li><a class="refentry reference" href="./at-c.html"><tt class="refentry literal"><span class="pre">at_c</span></tt></a></li>
<li><a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a></li>
<li><a class="refentry reference" href="./back-inserter.html"><tt class="refentry literal"><span class="pre">back_inserter</span></tt></a></li>
<li><a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a></li>
<li><a class="refentry reference" href="./bind.html"><tt class="refentry literal"><span class="pre">bind</span></tt></a></li>
<li><a class="refentry reference" href="./bitand.html"><tt class="refentry literal"><span class="pre">bitand_</span></tt></a></li>
<li><a class="refentry reference" href="./bitor.html"><tt class="refentry literal"><span class="pre">bitor_</span></tt></a></li>
<li><a class="refentry reference" href="./bitxor.html"><tt class="refentry literal"><span class="pre">bitxor_</span></tt></a></li>
<li><a class="refentry reference" href="./bool.html"><tt class="refentry literal"><span class="pre">bool_</span></tt></a></li>
<li><a class="refentry reference" href="./clear.html"><tt class="refentry literal"><span class="pre">clear</span></tt></a></li>
<li><a class="refentry reference" href="./contains.html"><tt class="refentry literal"><span class="pre">contains</span></tt></a></li>
<li><a class="refentry reference" href="./copy.html"><tt class="refentry literal"><span class="pre">copy</span></tt></a></li>
<li><a class="refentry reference" href="./copy-if.html"><tt class="refentry literal"><span class="pre">copy_if</span></tt></a></li>
<li><a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a></li>
<li><a class="refentry reference" href="./count-if.html"><tt class="refentry literal"><span class="pre">count_if</span></tt></a></li>
<li><a class="refentry reference" href="./deque.html"><tt class="refentry literal"><span class="pre">deque</span></tt></a></li>
<li><a class="refentry reference" href="./deref.html"><tt class="refentry literal"><span class="pre">deref</span></tt></a></li>
<li><a class="refentry reference" href="./distance.html"><tt class="refentry literal"><span class="pre">distance</span></tt></a></li>
<li><a class="refentry reference" href="./divides.html"><tt class="refentry literal"><span class="pre">divides</span></tt></a></li>
<li><a class="refentry reference" href="./empty.html"><tt class="refentry literal"><span class="pre">empty</span></tt></a></li>
<li><a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a></li>
<li><a class="refentry reference" href="./empty-sequence.html"><tt class="refentry literal"><span class="pre">empty_sequence</span></tt></a></li>
<li><a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a></li>
<li><a class="refentry reference" href="./equal.html"><tt class="refentry literal"><span class="pre">equal</span></tt></a></li>
<li><a class="refentry reference" href="./equal-to.html"><tt class="refentry literal"><span class="pre">equal_to</span></tt></a></li>
<li><a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a></li>
<li><a class="refentry reference" href="./erase-key.html"><tt class="refentry literal"><span class="pre">erase_key</span></tt></a></li>
<li><a class="refentry reference" href="./eval-if.html"><tt class="refentry literal"><span class="pre">eval_if</span></tt></a></li>
<li><a class="refentry reference" href="./eval-if-c.html"><tt class="refentry literal"><span class="pre">eval_if_c</span></tt></a></li>
<li><a class="refentry reference" href="./filter-view.html"><tt class="refentry literal"><span class="pre">filter_view</span></tt></a></li>
<li><a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a></li>
<li><a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a></li>
<li><a class="refentry reference" href="./fold.html"><tt class="refentry literal"><span class="pre">fold</span></tt></a></li>
<li><a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a></li>
<li><a class="refentry reference" href="./front-inserter.html"><tt class="refentry literal"><span class="pre">front_inserter</span></tt></a></li>
<li><a class="refentry reference" href="./greater.html"><tt class="refentry literal"><span class="pre">greater</span></tt></a></li>
<li><a class="refentry reference" href="./greater-equal.html"><tt class="refentry literal"><span class="pre">greater_equal</span></tt></a></li>
<li><a class="refentry reference" href="./has-key.html"><tt class="refentry literal"><span class="pre">has_key</span></tt></a></li>
<li><a class="refentry reference" href="./identity.html"><tt class="refentry literal"><span class="pre">identity</span></tt></a></li>
<li><a class="refentry reference" href="./if.html"><tt class="refentry literal"><span class="pre">if_</span></tt></a></li>
<li><a class="refentry reference" href="./if-c.html"><tt class="refentry literal"><span class="pre">if_c</span></tt></a></li>
<li><a class="refentry reference" href="./inherit.html"><tt class="refentry literal"><span class="pre">inherit</span></tt></a></li>
<li><a class="refentry reference" href="./inherit-linearly.html"><tt class="refentry literal"><span class="pre">inherit_linearly</span></tt></a></li>
<li><a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a></li>
<li><a class="refentry reference" href="./insert-range.html"><tt class="refentry literal"><span class="pre">insert_range</span></tt></a></li>
<li><a class="refentry reference" href="./inserters-inserter.html"><tt class="refentry literal"><span class="pre">inserter</span></tt></a></li>
<li><a class="refentry reference" href="./int.html"><tt class="refentry literal"><span class="pre">int_</span></tt></a></li>
<li><a class="refentry reference" href="./integral-c.html"><tt class="refentry literal"><span class="pre">integral_c</span></tt></a></li>
<li><a class="refentry reference" href="./is-sequence.html"><tt class="refentry literal"><span class="pre">is_sequence</span></tt></a></li>
<li><a class="refentry reference" href="./iter-fold.html"><tt class="refentry literal"><span class="pre">iter_fold</span></tt></a></li>
<li><a class="refentry reference" href="./iterator-category.html"><tt class="refentry literal"><span class="pre">iterator_category</span></tt></a></li>
<li><a class="refentry reference" href="./iterator-range.html"><tt class="refentry literal"><span class="pre">iterator_range</span></tt></a></li>
<li><a class="refentry reference" href="./joint-view.html"><tt class="refentry literal"><span class="pre">joint_view</span></tt></a></li>
<li><a class="refentry reference" href="./key-type.html"><tt class="refentry literal"><span class="pre">key_type</span></tt></a></li>
<li><a class="refentry reference" href="./lambda.html"><tt class="refentry literal"><span class="pre">lambda</span></tt></a></li>
<li><a class="refentry reference" href="./less.html"><tt class="refentry literal"><span class="pre">less</span></tt></a></li>
<li><a class="refentry reference" href="./less-equal.html"><tt class="refentry literal"><span class="pre">less_equal</span></tt></a></li>
<li><a class="refentry reference" href="./list.html"><tt class="refentry literal"><span class="pre">list</span></tt></a></li>
<li><a class="refentry reference" href="./list-c.html"><tt class="refentry literal"><span class="pre">list_c</span></tt></a></li>
<li><a class="refentry reference" href="./long.html"><tt class="refentry literal"><span class="pre">long_</span></tt></a></li>
<li><a class="refentry reference" href="./lower-bound.html"><tt class="refentry literal"><span class="pre">lower_bound</span></tt></a></li>
<li><a class="refentry reference" href="./map.html"><tt class="refentry literal"><span class="pre">map</span></tt></a></li>
<li><a class="refentry reference" href="./max.html"><tt class="refentry literal"><span class="pre">max</span></tt></a></li>
<li><a class="refentry reference" href="./max-element.html"><tt class="refentry literal"><span class="pre">max_element</span></tt></a></li>
<li><a class="refentry reference" href="./min.html"><tt class="refentry literal"><span class="pre">min</span></tt></a></li>
<li><a class="refentry reference" href="./min-element.html"><tt class="refentry literal"><span class="pre">min_element</span></tt></a></li>
<li><a class="refentry reference" href="./minus.html"><tt class="refentry literal"><span class="pre">minus</span></tt></a></li>
<li><a class="refentry reference" href="./modulus.html"><tt class="refentry literal"><span class="pre">modulus</span></tt></a></li>
<li><a class="refentry reference" href="./negate.html"><tt class="refentry literal"><span class="pre">negate</span></tt></a></li>
<li><a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a></li>
<li><a class="refentry reference" href="./not.html"><tt class="refentry literal"><span class="pre">not_</span></tt></a></li>
<li><a class="refentry reference" href="./not-equal-to.html"><tt class="refentry literal"><span class="pre">not_equal_to</span></tt></a></li>
<li><a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a></li>
<li><a class="refentry reference" href="./or.html"><tt class="refentry literal"><span class="pre">or_</span></tt></a></li>
<li><a class="refentry reference" href="./order.html"><tt class="refentry literal"><span class="pre">order</span></tt></a></li>
<li><a class="refentry reference" href="./pair.html"><tt class="refentry literal"><span class="pre">pair</span></tt></a></li>
<li><a class="refentry reference" href="./partition.html"><tt class="refentry literal"><span class="pre">partition</span></tt></a></li>
<li><a class="refentry reference" href="./plus.html"><tt class="refentry literal"><span class="pre">plus</span></tt></a></li>
<li><a class="refentry reference" href="./pop-back.html"><tt class="refentry literal"><span class="pre">pop_back</span></tt></a></li>
<li><a class="refentry reference" href="./pop-front.html"><tt class="refentry literal"><span class="pre">pop_front</span></tt></a></li>
<li><a class="refentry reference" href="./prior.html"><tt class="refentry literal"><span class="pre">prior</span></tt></a></li>
<li><a class="refentry reference" href="./protect.html"><tt class="refentry literal"><span class="pre">protect</span></tt></a></li>
<li><a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a></li>
<li><a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a></li>
<li><a class="refentry reference" href="./quote.html"><tt class="refentry literal"><span class="pre">quote</span></tt></a></li>
<li><a class="refentry reference" href="./range-c.html"><tt class="refentry literal"><span class="pre">range_c</span></tt></a></li>
<li><a class="refentry reference" href="./remove.html"><tt class="refentry literal"><span class="pre">remove</span></tt></a></li>
<li><a class="refentry reference" href="./remove-if.html"><tt class="refentry literal"><span class="pre">remove_if</span></tt></a></li>
<li><a class="refentry reference" href="./replace.html"><tt class="refentry literal"><span class="pre">replace</span></tt></a></li>
<li><a class="refentry reference" href="./replace-if.html"><tt class="refentry literal"><span class="pre">replace_if</span></tt></a></li>
<li><a class="refentry reference" href="./reverse.html"><tt class="refentry literal"><span class="pre">reverse</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-copy.html"><tt class="refentry literal"><span class="pre">reverse_copy</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-copy-if.html"><tt class="refentry literal"><span class="pre">reverse_copy_if</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-fold.html"><tt class="refentry literal"><span class="pre">reverse_fold</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-iter-fold.html"><tt class="refentry literal"><span class="pre">reverse_iter_fold</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-partition.html"><tt class="refentry literal"><span class="pre">reverse_partition</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-remove.html"><tt class="refentry literal"><span class="pre">reverse_remove</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-remove-if.html"><tt class="refentry literal"><span class="pre">reverse_remove_if</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-replace.html"><tt class="refentry literal"><span class="pre">reverse_replace</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-replace-if.html"><tt class="refentry literal"><span class="pre">reverse_replace_if</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-stable-partition.html"><tt class="refentry literal"><span class="pre">reverse_stable_partition</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-transform.html"><tt class="refentry literal"><span class="pre">reverse_transform</span></tt></a></li>
<li><a class="refentry reference" href="./reverse-unique.html"><tt class="refentry literal"><span class="pre">reverse_unique</span></tt></a></li>
<li><a class="refentry reference" href="./sequence-tag.html"><tt class="refentry literal"><span class="pre">sequence_tag</span></tt></a></li>
<li><a class="refentry reference" href="./set.html"><tt class="refentry literal"><span class="pre">set</span></tt></a></li>
<li><a class="refentry reference" href="./set-c.html"><tt class="refentry literal"><span class="pre">set_c</span></tt></a></li>
<li><a class="refentry reference" href="./shift-left.html"><tt class="refentry literal"><span class="pre">shift_left</span></tt></a></li>
<li><a class="refentry reference" href="./shift-right.html"><tt class="refentry literal"><span class="pre">shift_right</span></tt></a></li>
<li><a class="refentry reference" href="./single-view.html"><tt class="refentry literal"><span class="pre">single_view</span></tt></a></li>
<li><a class="refentry reference" href="./size.html"><tt class="refentry literal"><span class="pre">size</span></tt></a></li>
<li><a class="refentry reference" href="./size-t.html"><tt class="refentry literal"><span class="pre">size_t</span></tt></a></li>
<li><a class="refentry reference" href="./sizeof.html"><tt class="refentry literal"><span class="pre">sizeof_</span></tt></a></li>
<li><a class="refentry reference" href="./sort.html"><tt class="refentry literal"><span class="pre">sort</span></tt></a></li>
<li><a class="refentry reference" href="./stable-partition.html"><tt class="refentry literal"><span class="pre">stable_partition</span></tt></a></li>
<li><a class="refentry reference" href="./times.html"><tt class="refentry literal"><span class="pre">times</span></tt></a></li>
<li><a class="refentry reference" href="./transform.html"><tt class="refentry literal"><span class="pre">transform</span></tt></a></li>
<li><a class="refentry reference" href="./transform-view.html"><tt class="refentry literal"><span class="pre">transform_view</span></tt></a></li>
<li><a class="refentry reference" href="./unique.html"><tt class="refentry literal"><span class="pre">unique</span></tt></a></li>
<li><a class="refentry reference" href="./unpack-args.html"><tt class="refentry literal"><span class="pre">unpack_args</span></tt></a></li>
<li><a class="refentry reference" href="./upper-bound.html"><tt class="refentry literal"><span class="pre">upper_bound</span></tt></a></li>
<li><a class="refentry reference" href="./value-type.html"><tt class="refentry literal"><span class="pre">value_type</span></tt></a></li>
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./vector-c.html"><tt class="refentry literal"><span class="pre">vector_c</span></tt></a></li>
<li><a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a></li>
<li><a class="refentry reference" href="./zip-view.html"><tt class="refentry literal"><span class="pre">zip_view</span></tt></a></li>
<h1><a class="toc-backref" href="./categorized-index.html#id1613">Components</a></h1>
<ul class="simple" id="label-categorized-index-components">
<li><a class="reference internal" href="./assert.html">BOOST_MPL_ASSERT</a></li>
<li><a class="reference internal" href="./assert-msg.html">BOOST_MPL_ASSERT_MSG</a></li>
<li><a class="reference internal" href="./assert-not.html">BOOST_MPL_ASSERT_NOT</a></li>
<li><a class="reference internal" href="./assert-relation.html">BOOST_MPL_ASSERT_RELATION</a></li>
<li><a class="reference internal" href="./aux-lambda-support.html">BOOST_MPL_AUX_LAMBDA_SUPPORT</a></li>
<li><a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a></li>
<li><a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a></li>
<li><a class="reference internal" href="./cfg-no-preprocessed-headers.html">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></li>
<li><a class="reference internal" href="./has-xxx-template-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a></li>
<li><a class="reference internal" href="./has-xxx-template-named-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a></li>
<li><a class="reference internal" href="./has-xxx-trait-def.html">BOOST_MPL_HAS_XXX_TRAIT_DEF</a></li>
<li><a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></li>
<li><a class="reference internal" href="./limit-list-size.html">BOOST_MPL_LIMIT_LIST_SIZE</a></li>
<li><a class="reference internal" href="./limit-map-size.html">BOOST_MPL_LIMIT_MAP_SIZE</a></li>
<li><a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a></li>
<li><a class="reference internal" href="./limit-set-size.html">BOOST_MPL_LIMIT_SET_SIZE</a></li>
<li><a class="reference internal" href="./limit-string-size.html">BOOST_MPL_LIMIT_STRING_SIZE</a></li>
<li><a class="reference internal" href="./limit-unrolling.html">BOOST_MPL_LIMIT_UNROLLING</a></li>
<li><a class="reference internal" href="./limit-vector-size.html">BOOST_MPL_LIMIT_VECTOR_SIZE</a></li>
<li><a class="reference internal" href="./trivial-metafunctions-summary.html">Trivial Metafunctions Summary</a></li>
<li><a class="reference internal" href="./placeholders.html">_1</a>, <a class="reference internal" href="./placeholders.html">_2</a>, <a class="reference internal" href="./placeholders.html">_3</a>,<em>...</em></li>
<li><a class="reference internal" href="./accumulate.html">accumulate</a></li>
<li><a class="reference internal" href="./advance.html">advance</a></li>
<li><a class="reference internal" href="./always.html">always</a></li>
<li><a class="reference internal" href="./and.html">and_</a></li>
<li><a class="reference internal" href="./apply.html">apply</a></li>
<li><a class="reference internal" href="./apply-wrap.html">apply_wrap</a></li>
<li><a class="reference internal" href="./arg.html">arg</a></li>
<li><a class="reference internal" href="./at.html">at</a></li>
<li><a class="reference internal" href="./at-c.html">at_c</a></li>
<li><a class="reference internal" href="./back.html">back</a></li>
<li><a class="reference internal" href="./back-inserter.html">back_inserter</a></li>
<li><a class="reference internal" href="./begin.html">begin</a></li>
<li><a class="reference internal" href="./bind.html">bind</a></li>
<li><a class="reference internal" href="./bitand.html">bitand_</a></li>
<li><a class="reference internal" href="./bitor.html">bitor_</a></li>
<li><a class="reference internal" href="./bitxor.html">bitxor_</a></li>
<li><a class="reference internal" href="./bool.html">bool_</a></li>
<li><a class="reference internal" href="./c-str.html">c_str</a></li>
<li><a class="reference internal" href="./char.html">char_</a></li>
<li><a class="reference internal" href="./clear.html">clear</a></li>
<li><a class="reference internal" href="./contains.html">contains</a></li>
<li><a class="reference internal" href="./copy.html">copy</a></li>
<li><a class="reference internal" href="./copy-if.html">copy_if</a></li>
<li><a class="reference internal" href="./count.html">count</a></li>
<li><a class="reference internal" href="./count-if.html">count_if</a></li>
<li><a class="reference internal" href="./deque.html">deque</a></li>
<li><a class="reference internal" href="./deref.html">deref</a></li>
<li><a class="reference internal" href="./distance.html">distance</a></li>
<li><a class="reference internal" href="./divides.html">divides</a></li>
<li><a class="reference internal" href="./empty.html">empty</a></li>
<li><a class="reference internal" href="./empty-base.html">empty_base</a></li>
<li><a class="reference internal" href="./empty-sequence.html">empty_sequence</a></li>
<li><a class="reference internal" href="./end.html">end</a></li>
<li><a class="reference internal" href="./equal.html">equal</a></li>
<li><a class="reference internal" href="./equal-to.html">equal_to</a></li>
<li><a class="reference internal" href="./erase.html">erase</a></li>
<li><a class="reference internal" href="./erase-key.html">erase_key</a></li>
<li><a class="reference internal" href="./eval-if.html">eval_if</a></li>
<li><a class="reference internal" href="./eval-if-c.html">eval_if_c</a></li>
<li><a class="reference internal" href="./filter-view.html">filter_view</a></li>
<li><a class="reference internal" href="./find.html">find</a></li>
<li><a class="reference internal" href="./find-if.html">find_if</a></li>
<li><a class="reference internal" href="./fold.html">fold</a></li>
<li><a class="reference internal" href="./for-each.html">for_each</a></li>
<li><a class="reference internal" href="./front.html">front</a></li>
<li><a class="reference internal" href="./front-inserter.html">front_inserter</a></li>
<li><a class="reference internal" href="./greater.html">greater</a></li>
<li><a class="reference internal" href="./greater-equal.html">greater_equal</a></li>
<li><a class="reference internal" href="./has-key.html">has_key</a></li>
<li><a class="reference internal" href="./identity.html">identity</a></li>
<li><a class="reference internal" href="./if.html">if_</a></li>
<li><a class="reference internal" href="./if-c.html">if_c</a></li>
<li><a class="reference internal" href="./inherit.html">inherit</a></li>
<li><a class="reference internal" href="./inherit-linearly.html">inherit_linearly</a></li>
<li><a class="reference internal" href="./insert.html">insert</a></li>
<li><a class="reference internal" href="./insert-range.html">insert_range</a></li>
<li><a class="reference internal" href="./inserter.html">Inserter</a></li>
<li><a class="reference internal" href="./int.html">int_</a></li>
<li><a class="reference internal" href="./integral-c.html">integral_c</a></li>
<li><a class="reference internal" href="./is-sequence.html">is_sequence</a></li>
<li><a class="reference internal" href="./iter-fold.html">iter_fold</a></li>
<li><a class="reference internal" href="./iterator-category.html">iterator_category</a></li>
<li><a class="reference internal" href="./iterator-range.html">iterator_range</a></li>
<li><a class="reference internal" href="./joint-view.html">joint_view</a></li>
<li><a class="reference internal" href="./key-type.html">key_type</a></li>
<li><a class="reference internal" href="./lambda.html">lambda</a></li>
<li><a class="reference internal" href="./less.html">less</a></li>
<li><a class="reference internal" href="./less-equal.html">less_equal</a></li>
<li><a class="reference internal" href="./list.html">list</a></li>
<li><a class="reference internal" href="./list-c.html">list_c</a></li>
<li><a class="reference internal" href="./long.html">long_</a></li>
<li><a class="reference internal" href="./lower-bound.html">lower_bound</a></li>
<li><a class="reference internal" href="./map.html">map</a></li>
<li><a class="reference internal" href="./max.html">max</a></li>
<li><a class="reference internal" href="./max-element.html">max_element</a></li>
<li><a class="reference internal" href="./min.html">min</a></li>
<li><a class="reference internal" href="./min-element.html">min_element</a></li>
<li><a class="reference internal" href="./minus.html">minus</a></li>
<li><a class="reference internal" href="./modulus.html">modulus</a></li>
<li><a class="reference internal" href="./negate.html">negate</a></li>
<li><a class="reference internal" href="./next.html">next</a></li>
<li><a class="reference internal" href="./not.html">not_</a></li>
<li><a class="reference internal" href="./not-equal-to.html">not_equal_to</a></li>
<li><a class="reference internal" href="./numeric-cast.html">numeric_cast</a></li>
<li><a class="reference internal" href="./or.html">or_</a></li>
<li><a class="reference internal" href="./order.html">order</a></li>
<li><a class="reference internal" href="./pair.html">pair</a></li>
<li><a class="reference internal" href="./partition.html">partition</a></li>
<li><a class="reference internal" href="./plus.html">plus</a></li>
<li><a class="reference internal" href="./pop-back.html">pop_back</a></li>
<li><a class="reference internal" href="./pop-front.html">pop_front</a></li>
<li><a class="reference internal" href="./prior.html">prior</a></li>
<li><a class="reference internal" href="./protect.html">protect</a></li>
<li><a class="reference internal" href="./push-back.html">push_back</a></li>
<li><a class="reference internal" href="./push-front.html">push_front</a></li>
<li><a class="reference internal" href="./quote.html">quote</a></li>
<li><a class="reference internal" href="./range-c.html">range_c</a></li>
<li><a class="reference internal" href="./remove.html">remove</a></li>
<li><a class="reference internal" href="./remove-if.html">remove_if</a></li>
<li><a class="reference internal" href="./replace.html">replace</a></li>
<li><a class="reference internal" href="./replace-if.html">replace_if</a></li>
<li><a class="reference internal" href="./reverse.html">reverse</a></li>
<li><a class="reference internal" href="./reverse-copy.html">reverse_copy</a></li>
<li><a class="reference internal" href="./reverse-copy-if.html">reverse_copy_if</a></li>
<li><a class="reference internal" href="./reverse-fold.html">reverse_fold</a></li>
<li><a class="reference internal" href="./reverse-iter-fold.html">reverse_iter_fold</a></li>
<li><a class="reference internal" href="./reverse-partition.html">reverse_partition</a></li>
<li><a class="reference internal" href="./reverse-remove.html">reverse_remove</a></li>
<li><a class="reference internal" href="./reverse-remove-if.html">reverse_remove_if</a></li>
<li><a class="reference internal" href="./reverse-replace.html">reverse_replace</a></li>
<li><a class="reference internal" href="./reverse-replace-if.html">reverse_replace_if</a></li>
<li><a class="reference internal" href="./reverse-stable-partition.html">reverse_stable_partition</a></li>
<li><a class="reference internal" href="./reverse-transform.html">reverse_transform</a></li>
<li><a class="reference internal" href="./reverse-unique.html">reverse_unique</a></li>
<li><a class="reference internal" href="./sequence-tag.html">sequence_tag</a></li>
<li><a class="reference internal" href="./set.html">set</a></li>
<li><a class="reference internal" href="./set-c.html">set_c</a></li>
<li><a class="reference internal" href="./shift-left.html">shift_left</a></li>
<li><a class="reference internal" href="./shift-right.html">shift_right</a></li>
<li><a class="reference internal" href="./single-view.html">single_view</a></li>
<li><a class="reference internal" href="./size.html">size</a></li>
<li><a class="reference internal" href="./size-t.html">size_t</a></li>
<li><a class="reference internal" href="./sizeof.html">sizeof_</a></li>
<li><a class="reference internal" href="./sort.html">sort</a></li>
<li><a class="reference internal" href="./stable-partition.html">stable_partition</a></li>
<li><a class="reference internal" href="./string.html">string</a></li>
<li><a class="reference internal" href="./times.html">times</a></li>
<li><a class="reference internal" href="./transform.html">transform</a></li>
<li><a class="reference internal" href="./transform-view.html">transform_view</a></li>
<li><a class="reference internal" href="./unique.html">unique</a></li>
<li><a class="reference internal" href="./unpack-args.html">unpack_args</a></li>
<li><a class="reference internal" href="./upper-bound.html">upper_bound</a></li>
<li><a class="reference internal" href="./value-type.html">value_type</a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./vector-c.html">vector_c</a></li>
<li><a class="reference internal" href="./void.html">void_</a></li>
<li><a class="reference internal" href="./zip-view.html">zip_view</a></li>
</ul>
<!-- modtime: November 10, 2004 05:07:51 +0000 -->
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-concepts.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./categorized-index-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./acknowledgements.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index-concepts.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./categorized-index.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -1,34 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Composition and Argument Binding</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./unpack-args.html" class="navigation-link">Prev</a>&nbsp;<a href="./placeholders.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./invocation.html" class="navigation-link">Back</a>&nbsp;<a href="./arithmetic-operations.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument.html" class="navigation-link">Composition and Argument Binding</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./composition-and-argument-binding.html" class="navigation-link">Composition and Argument Binding</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="composition-and-argument">
<h1><a class="toc-backref" href="./metafunctions.html#id454" name="composition-and-argument">Composition and Argument Binding</a></h1>
<a class="target" id="id217" name="id217"></a><!-- modtime: November 07, 2004 18:47:40 +0000 -->
<!-- Metafunctions/Composition and Argument Binding//_1,_2,..._n |10 -->
<div class="section" id="composition-and-argument-binding">
<h1><a class="toc-backref" href="./metafunctions.html#id1528">Composition and Argument Binding</a></h1>
<span class="target" id="label-metafunctions-composition-and-argument-binding"></span><!-- Metafunctions/Composition and Argument Binding//_1,_2,..._n |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./placeholders.html" id="id455" name="id455">Placeholders</a></li>
<li><a class="reference" href="./lambda.html" id="id456" name="id456">lambda</a></li>
<li><a class="reference" href="./bind.html" id="id457" name="id457">bind</a></li>
<li><a class="reference" href="./quote.html" id="id458" name="id458">quote</a></li>
<li><a class="reference" href="./arg.html" id="id459" name="id459">arg</a></li>
<li><a class="reference" href="./protect.html" id="id460" name="id460">protect</a></li>
<li><a class="reference internal" href="./placeholders.html" id="id1529">Placeholders</a></li>
<li><a class="reference internal" href="./lambda.html" id="id1530">lambda</a></li>
<li><a class="reference internal" href="./bind.html" id="id1531">bind</a></li>
<li><a class="reference internal" href="./quote.html" id="id1532">quote</a></li>
<li><a class="reference internal" href="./arg.html" id="id1533">arg</a></li>
<li><a class="reference internal" href="./protect.html" id="id1534">protect</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./unpack-args.html" class="navigation-link">Prev</a>&nbsp;<a href="./placeholders.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./invocation.html" class="navigation-link">Back</a>&nbsp;<a href="./arithmetic-operations.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+22 -24
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Concepts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,15 +12,15 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="concepts">
<h1><a class="toc-backref" href="./sequences.html#id323" name="concepts">Concepts</a></h1>
<a class="target" id="label-sequences-concepts" name="label-sequences-concepts"></a><p>The taxonomy of sequence concepts in MPL parallels the taxonomy of the MPL
<a class="reference" href="./iterators.html">Iterators</a>, with two additional classification dimensions:
<h1><a class="toc-backref" href="./sequences.html#id1394">Concepts</a></h1>
<p id="label-sequences-concepts">The taxonomy of sequence concepts in MPL parallels the taxonomy of the MPL
<a class="reference internal" href="./iterators.html">Iterators</a>, with two additional classification dimensions:
<cite>extensibility</cite> and <cite>associativeness</cite>.</p>
<!-- The latter two are orthogonal to
sequence traversal characteristics, but not to each other, meaning that
a sequence can be characterized as both `Bidirectional`__
and `Back Extensible`__, or `Bidirectional`__ and
`Extensible Associative`__, but not as `Bidirectional`__,
<!-- The latter two are orthogonal to
sequence traversal characteristics, but not to each other, meaning that
a sequence can be characterized as both `Bidirectional`__
and `Back Extensible`__, or `Bidirectional`__ and
`Extensible Associative`__, but not as `Bidirectional`__,
`Back Extensible`__ *and* `Extensible Associative`__.
__ `Bidirectional Sequence`_
@@ -38,23 +35,24 @@ __ `Extensible Associative Sequence`_
Two utility concepts, |Variadic Sequence| and |Integral Sequence Wrapper|,
are not applicable in generic contexts, but are used to group together
the common parts of different sequence classes' specifications. -->
<!-- modtime: November 05, 2004 05:11:22 +0000 -->
<!-- Sequences/Concepts//Forward Sequence |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./forward-sequence.html" id="id324" name="id324">Forward Sequence</a></li>
<li><a class="reference" href="./bidirectional-sequence.html" id="id325" name="id325">Bidirectional Sequence</a></li>
<li><a class="reference" href="./random-access-sequence.html" id="id326" name="id326">Random Access Sequence</a></li>
<li><a class="reference" href="./extensible-sequence.html" id="id327" name="id327">Extensible Sequence</a></li>
<li><a class="reference" href="./front-extensible-sequence.html" id="id328" name="id328">Front Extensible Sequence</a></li>
<li><a class="reference" href="./back-extensible-sequence.html" id="id329" name="id329">Back Extensible Sequence</a></li>
<li><a class="reference" href="./associative-sequence.html" id="id330" name="id330">Associative Sequence</a></li>
<li><a class="reference" href="./extensible-associative.html" id="id331" name="id331">Extensible Associative Sequence</a></li>
<li><a class="reference" href="./integral-sequence-wrapper.html" id="id332" name="id332">Integral Sequence Wrapper</a></li>
<li><a class="reference" href="./variadic-sequence.html" id="id333" name="id333">Variadic Sequence</a></li>
<li><a class="reference internal" href="./forward-sequence.html" id="id1395">Forward Sequence</a></li>
<li><a class="reference internal" href="./bidirectional-sequence.html" id="id1396">Bidirectional Sequence</a></li>
<li><a class="reference internal" href="./random-access-sequence.html" id="id1397">Random Access Sequence</a></li>
<li><a class="reference internal" href="./extensible-sequence.html" id="id1398">Extensible Sequence</a></li>
<li><a class="reference internal" href="./front-extensible-sequence.html" id="id1399">Front Extensible Sequence</a></li>
<li><a class="reference internal" href="./back-extensible-sequence.html" id="id1400">Back Extensible Sequence</a></li>
<li><a class="reference internal" href="./associative-sequence.html" id="id1401">Associative Sequence</a></li>
<li><a class="reference internal" href="./extensible-associative-sequence.html" id="id1402">Extensible Associative Sequence</a></li>
<li><a class="reference internal" href="./integral-sequence-wrapper.html" id="id1403">Integral Sequence Wrapper</a></li>
<li><a class="reference internal" href="./variadic-sequence.html" id="id1404">Variadic Sequence</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./sequences.html" class="navigation-link">Prev</a>&nbsp;<a href="./forward-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./classes.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./sequences.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+18 -18
View File
@@ -1,36 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Configuration</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-preprocessed.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Back</a>&nbsp;<a href="./broken-compiler.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Back</a>&nbsp;<a href="./broken-compiler-workarounds.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./configuration.html" class="navigation-link">Configuration</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="./macros.html#id518" name="configuration">Configuration</a></h1>
<a class="target" id="id293" name="id293"></a><!-- modtime: November 04, 2004 12:12:12 +0000 -->
<!-- Macros/Configuration//BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS |10 -->
<h1><a class="toc-backref" href="./macros.html#id1597">Configuration</a></h1>
<span class="target" id="label-macros-configuration"></span><!-- Macros/Configuration//BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./cfg-no-preprocessed.html" id="id519" name="id519">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></li>
<li><a class="reference" href="./cfg-no-has-xxx.html" id="id520" name="id520">BOOST_MPL_CFG_NO_HAS_XXX</a></li>
<li><a class="reference" href="./limit-metafunction-arity.html" id="id521" name="id521">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a></li>
<li><a class="reference" href="./limit-vector-size.html" id="id522" name="id522">BOOST_MPL_LIMIT_VECTOR_SIZE</a></li>
<li><a class="reference" href="./limit-list-size.html" id="id523" name="id523">BOOST_MPL_LIMIT_LIST_SIZE</a></li>
<li><a class="reference" href="./limit-set-size.html" id="id524" name="id524">BOOST_MPL_LIMIT_SET_SIZE</a></li>
<li><a class="reference" href="./limit-map-size.html" id="id525" name="id525">BOOST_MPL_LIMIT_MAP_SIZE</a></li>
<li><a class="reference" href="./limit-unrolling.html" id="id526" name="id526">BOOST_MPL_LIMIT_UNROLLING</a></li>
<li><a class="reference internal" href="./cfg-no-preprocessed-headers.html" id="id1598">BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS</a></li>
<li><a class="reference internal" href="./cfg-no-has-xxx.html" id="id1599">BOOST_MPL_CFG_NO_HAS_XXX</a></li>
<li><a class="reference internal" href="./cfg-no-has-xxx-template.html" id="id1600">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a></li>
<li><a class="reference internal" href="./limit-metafunction-arity.html" id="id1601">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a></li>
<li><a class="reference internal" href="./limit-vector-size.html" id="id1602">BOOST_MPL_LIMIT_VECTOR_SIZE</a></li>
<li><a class="reference internal" href="./limit-list-size.html" id="id1603">BOOST_MPL_LIMIT_LIST_SIZE</a></li>
<li><a class="reference internal" href="./limit-set-size.html" id="id1604">BOOST_MPL_LIMIT_SET_SIZE</a></li>
<li><a class="reference internal" href="./limit-map-size.html" id="id1605">BOOST_MPL_LIMIT_MAP_SIZE</a></li>
<li><a class="reference internal" href="./limit-string-size.html" id="id1606">BOOST_MPL_LIMIT_STRING_SIZE</a></li>
<li><a class="reference internal" href="./limit-unrolling.html" id="id1607">BOOST_MPL_LIMIT_UNROLLING</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-preprocessed.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Back</a>&nbsp;<a href="./broken-compiler.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./cfg-no-preprocessed-headers.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Back</a>&nbsp;<a href="./broken-compiler-workarounds.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./macros.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+25 -26
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: contains</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./contains.html" class="navigation-link">contains</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="contains">
<h1><a class="toc-backref" href="./querying-algorithms.html#id405" name="contains">contains</a></h1>
<div class="section" id="contains-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1477">contains</a></h1>
<div class="section" id="id551">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,34 +26,34 @@ struct <a href="./contains.html" class="identifier">contains</a>
};
</pre>
</div>
<div class="section" id="contains-description">
<div class="section" id="id552">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if one or more elements in <tt class="literal"><span class="pre">Sequence</span></tt>
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if one or more elements in <tt class="literal"><span class="pre">Sequence</span></tt>
are identical to <tt class="literal"><span class="pre">T</span></tt>.</p>
</div>
<div class="section" id="contains-header">
<div class="section" id="id553">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/contains.hpp" class="header">boost/mpl/contains.hpp</a>&gt;
</pre>
</div>
<div class="section" id="contains-parameters">
<div class="section" id="id554">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">T</span></tt></td>
@@ -66,21 +63,22 @@ are identical to <tt class="literal"><span class="pre">T</span></tt>.</p>
</tbody>
</table>
</div>
<div class="section" id="contains-expression-semantics">
<div class="section" id="id555">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./contains.html" class="identifier">contains</a>&lt;s,t&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./not.html" class="identifier">not_</a>&lt; is_same&lt;
typedef <a href="./not.html" class="identifier">not_</a>&lt; is_same&lt;
<a href="./find.html" class="identifier">find</a>&lt;s,t&gt;::type
, <a href="./end.html" class="identifier">end</a>&lt;s&gt;::type
&gt; &gt;::type r;
@@ -90,26 +88,27 @@ typedef <a href="./not.html" class="identifier">not_</a>&lt; is_same&lt;
</tbody>
</table>
</div>
<div class="section" id="contains-complexity">
<div class="section" id="id556">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. At most <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> comparisons for identity.</p>
</div>
<div class="section" id="contains-example">
<div class="section" id="id557">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;char,int,unsigned,long,unsigned long&gt; types;
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./contains.html" class="identifier">contains</a>&lt;types,bool&gt; ));
</pre>
</div>
<div class="section" id="contains-see-also">
<div class="section" id="id558">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a>, <a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a>, <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>, <a class="refentry reference" href="./lower-bound.html"><tt class="refentry literal"><span class="pre">lower_bound</span></tt></a></p>
<!-- modtime: November 13, 2004 01:52:38 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./find.html">find</a>, <a class="reference internal" href="./find-if.html">find_if</a>, <a class="reference internal" href="./count.html">count</a>, <a class="reference internal" href="./lower-bound.html">lower_bound</a></p>
<!-- Algorithms/Querying Algorithms//count |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./find-if.html" class="navigation-link">Prev</a>&nbsp;<a href="./count.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./find-if.html" class="navigation-link">Back</a>&nbsp;<a href="./count.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+38 -39
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: copy_if</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./transformation-algorithms.html" class="navigation-link">Transformation Algorithms</a> / <a href="./copy-if.html" class="navigation-link">copy_if</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="copy-if">
<h1><a class="toc-backref" href="./transformation-algorithms.html#id415" name="copy-if">copy_if</a></h1>
<div class="section" id="transformation-copy-synopsis">
<h1><a class="toc-backref" href="./transformation-algorithms.html#id1487">copy_if</a></h1>
<div class="section" id="id624">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,68 +27,69 @@ struct <a href="./copy-if.html" class="identifier">copy_if</a>
};
</pre>
</div>
<div class="section" id="transformation-copy-description">
<div class="section" id="id625">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a filtered copy of the original sequence containing the elements that satisfy
<p>Returns a filtered copy of the original sequence containing the elements that satisfy
the predicate <tt class="literal"><span class="pre">Pred</span></tt>.</p>
<p>[<em>Note:</em> This wording applies to a no-inserter version(s) of the algorithm. See the
<cite>Expression semantics</cite> subsection for a precise specification of the algorithm's
<p>[<em>Note:</em> This wording applies to a no-inserter version(s) of the algorithm. See the
<cite>Expression semantics</cite> subsection for a precise specification of the algorithm's
details in all cases — <em>end note</em>]</p>
</div>
<div class="section" id="transformation-copy-header">
<div class="section" id="id626">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/copy_if.hpp" class="header">boost/mpl/copy_if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="transformation-copy-model-of">
<div class="section" id="id627">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a></p>
<p><a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a></p>
</div>
<div class="section" id="transformation-copy-parameters">
<div class="section" id="id628">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="40%" />
<col width="40%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to copy.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pred</span></tt></td>
<td>Unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A copying condition.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">In</span></tt></td>
<td><a class="reference" href="./inserter.html">Inserter</a></td>
<td><a class="reference internal" href="./inserter.html">Inserter</a></td>
<td>An inserter.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="transformation-copy-expression-semantics">
<div class="section" id="id629">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>.</p>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, an unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>, and
an <a class="reference" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>:</p>
where they differ from, or are not defined in <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>.</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, an unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>, and
an <a class="reference internal" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./copy-if.html" class="identifier">copy_if</a>&lt;s,pred,in&gt;::type r;
typedef <a href="./copy-if.html" class="identifier">copy_if</a>&lt;s,pred,in&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -102,9 +100,9 @@ typedef <a href="./fold.html" class="identifier">fold</a>&lt;
s
, in::state
, <a href="./eval-if.html" class="identifier">eval_if</a>&lt;
<a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;p,_2&gt;
, <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">2</span></tt>&lt;op,_1,_2&gt;
, <a href="./identity.html" class="identifier">identity</a>&lt;_1&gt;
<a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;p,<a href="./placeholders.html" class="identifier">_2</a>&gt;
, <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">2</span></tt>&lt;op,<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt;
, <a href="./identity.html" class="identifier">identity</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;
&gt;
&gt;::type r;
</pre>
@@ -113,17 +111,17 @@ typedef <a href="./fold.html" class="identifier">fold</a>&lt;
</tbody>
</table>
</div>
<div class="section" id="transformation-copy-complexity">
<div class="section" id="id630">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">pred</span></tt>, and at
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">pred</span></tt>, and at
most <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">in::operation</span></tt>.</p>
</div>
<div class="section" id="transformation-copy-example">
<div class="section" id="id631">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./copy-if.html" class="identifier">copy_if</a>&lt;
<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt;
, <a href="./less.html" class="identifier">less</a>&lt; _1, <a href="./int.html" class="identifier">int_</a>&lt;5&gt; &gt;
, <a href="./less.html" class="identifier">less</a>&lt; <a href="./placeholders.html" class="identifier">_1</a>, <a href="./int.html" class="identifier">int_</a>&lt;5&gt; &gt;
, <a href="./back-inserter.html" class="identifier">back_inserter</a>&lt; <a href="./vector.html" class="identifier">vector</a>&lt;&gt; &gt;
&gt;::type result;
@@ -131,15 +129,16 @@ typedef <a href="./copy-if.html" class="identifier">copy_if</a>&lt;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt;result,<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,5&gt; > ));
</pre>
</div>
<div class="section" id="transformation-copy-see-also">
<div class="section" id="id632">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="refentry reference" href="./reverse-copy-if.html"><tt class="refentry literal"><span class="pre">reverse_copy_if</span></tt></a>, <a class="refentry reference" href="./copy.html"><tt class="refentry literal"><span class="pre">copy</span></tt></a>, <a class="refentry reference" href="./remove-if.html"><tt class="refentry literal"><span class="pre">remove_if</span></tt></a>, <a class="refentry reference" href="./replace-if.html"><tt class="refentry literal"><span class="pre">replace_if</span></tt></a></p>
<!-- modtime: November 13, 2004 01:54:56 +0000 -->
<p><a class="reference internal" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="reference internal" href="./reverse-copy-if.html">reverse_copy_if</a>, <a class="reference internal" href="./copy.html">copy</a>, <a class="reference internal" href="./remove-if.html">remove_if</a>, <a class="reference internal" href="./replace-if.html">replace_if</a></p>
<!-- Algorithms/Transformation Algorithms//transform |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./copy.html" class="navigation-link">Prev</a>&nbsp;<a href="./transform.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./copy.html" class="navigation-link">Back</a>&nbsp;<a href="./transform.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./transformation-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -31
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: copy</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./transformation-algorithms.html" class="navigation-link">Transformation Algorithms</a> / <a href="./copy.html" class="navigation-link">copy</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="copy">
<h1><a class="toc-backref" href="./transformation-algorithms.html#id414" name="copy">copy</a></h1>
<div class="section" id="copy-synopsis">
<h1><a class="toc-backref" href="./transformation-algorithms.html#id1486">copy</a></h1>
<div class="section" id="id615">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,62 +26,63 @@ struct <a href="./copy.html" class="identifier">copy</a>
};
</pre>
</div>
<div class="section" id="copy-description">
<div class="section" id="id616">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a copy of the original sequence.</p>
<p>[<em>Note:</em> This wording applies to a no-inserter version(s) of the algorithm. See the
<cite>Expression semantics</cite> subsection for a precise specification of the algorithm's
<p>[<em>Note:</em> This wording applies to a no-inserter version(s) of the algorithm. See the
<cite>Expression semantics</cite> subsection for a precise specification of the algorithm's
details in all cases — <em>end note</em>]</p>
</div>
<div class="section" id="copy-header">
<div class="section" id="id617">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/copy.hpp" class="header">boost/mpl/copy.hpp</a>&gt;
</pre>
</div>
<div class="section" id="copy-model-of">
<div class="section" id="id618">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a></p>
<p><a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a></p>
</div>
<div class="section" id="copy-parameters">
<div class="section" id="id619">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="37%" />
<col width="42%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to copy.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">In</span></tt></td>
<td><a class="reference" href="./inserter.html">Inserter</a></td>
<td><a class="reference internal" href="./inserter.html">Inserter</a></td>
<td>An inserter.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="copy-expression-semantics">
<div class="section" id="id620">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>.</p>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and an <a class="reference" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>:</p>
where they differ from, or are not defined in <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>.</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and an <a class="reference internal" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./copy.html" class="identifier">copy</a>&lt;s,in&gt;::type r;
typedef <a href="./copy.html" class="identifier">copy</a>&lt;s,in&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -95,11 +93,11 @@ typedef <a href="./fold.html" class="identifier">fold</a>&lt; s,in::state,in::op
</tbody>
</table>
</div>
<div class="section" id="copy-complexity">
<div class="section" id="id621">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">in::operation</span></tt>.</p>
</div>
<div class="section" id="copy-example">
<div class="section" id="id622">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,0,1,2,3,4,5,6,7,8,9&gt; numbers;
@@ -112,15 +110,16 @@ typedef <a href="./copy.html" class="identifier">copy</a>&lt;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt; result,<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,20&gt; > ));
</pre>
</div>
<div class="section" id="copy-see-also">
<div class="section" id="id623">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="refentry reference" href="./reverse-copy.html"><tt class="refentry literal"><span class="pre">reverse_copy</span></tt></a>, <a class="refentry reference" href="./copy-if.html"><tt class="refentry literal"><span class="pre">copy_if</span></tt></a>, <a class="refentry reference" href="./transform.html"><tt class="refentry literal"><span class="pre">transform</span></tt></a></p>
<!-- modtime: November 13, 2004 01:54:21 +0000 -->
<p><a class="reference internal" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="reference internal" href="./reverse-copy.html">reverse_copy</a>, <a class="reference internal" href="./copy-if.html">copy_if</a>, <a class="reference internal" href="./transform.html">transform</a></p>
<!-- Algorithms/Transformation Algorithms//copy_if |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./transformation-algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./copy-if.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./copy-if.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./transformation-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+28 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: count_if</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./count-if.html" class="navigation-link">count_if</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="count-if">
<h1><a class="toc-backref" href="./querying-algorithms.html#id407" name="count-if">count_if</a></h1>
<div class="section" id="querying-count-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1479">count_if</a></h1>
<div class="section" id="id567">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,61 +26,62 @@ struct <a href="./count-if.html" class="identifier">count_if</a>
};
</pre>
</div>
<div class="section" id="querying-count-description">
<div class="section" id="id568">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the number of elements in <tt class="literal"><span class="pre">Sequence</span></tt> that satisfy the predicate <tt class="literal"><span class="pre">Pred</span></tt>.</p>
</div>
<div class="section" id="querying-count-header">
<div class="section" id="id569">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/count_if.hpp" class="header">boost/mpl/count_if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="querying-count-parameters">
<div class="section" id="id570">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="38%" />
<col width="43%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pred</span></tt></td>
<td>Unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A count condition.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="querying-count-expression-semantics">
<div class="section" id="id571">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./count-if.html" class="identifier">count_if</a>&lt;s,pred&gt;::type n;
typedef <a href="./count-if.html" class="identifier">count_if</a>&lt;s,pred&gt;::type n;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./lambda.html" class="identifier">lambda</a>&lt;pred&gt;::type p;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;
s
, <a href="./long.html" class="identifier">long_</a>&lt;0&gt;
, <a href="./if.html" class="identifier">if_</a>&lt; <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;p,_2&gt;, <a href="./next.html" class="identifier">next</a>&lt;_1&gt;, _1 &gt;
, <a href="./if.html" class="identifier">if_</a>&lt; <a href="./apply-wrap.html" class="identifier">apply_wrap</a><tt class="literal"><span class="pre">1</span></tt>&lt;p,<a href="./placeholders.html" class="identifier">_2</a>&gt;, <a href="./next.html" class="identifier">next</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;, <a href="./placeholders.html" class="identifier">_1</a> &gt;
&gt;::type n;
</pre>
</td>
@@ -91,29 +89,30 @@ typedef <a href="./fold.html" class="identifier">fold</a>&lt;
</tbody>
</table>
</div>
<div class="section" id="querying-count-complexity">
<div class="section" id="id572">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">pred</span></tt>.</p>
</div>
<div class="section" id="querying-count-example">
<div class="section" id="id573">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;int,char,long,short,char,long,double,long&gt; types;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./count-if.html" class="identifier">count_if</a>&lt; types, is_float&lt;_&gt; &gt;::value), ==, 1 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./count-if.html" class="identifier">count_if</a>&lt; types, is_same&lt;_,char&gt; &gt;::value), ==, 2 );
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./count-if.html" class="identifier">count_if</a>&lt; types, is_same&lt;_,void&gt; &gt;::value), ==, 0 );
</pre>
</div>
<div class="section" id="querying-count-see-also">
<div class="section" id="id574">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>, <a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a>, <a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a>, <a class="refentry reference" href="./contains.html"><tt class="refentry literal"><span class="pre">contains</span></tt></a></p>
<!-- modtime: November 10, 2004 04:43:18 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./count.html">count</a>, <a class="reference internal" href="./find.html">find</a>, <a class="reference internal" href="./find-if.html">find_if</a>, <a class="reference internal" href="./contains.html">contains</a></p>
<!-- Algorithms/Querying Algorithms//lower_bound |60 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./count.html" class="navigation-link">Prev</a>&nbsp;<a href="./lower-bound.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./count.html" class="navigation-link">Back</a>&nbsp;<a href="./lower-bound.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+23 -24
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: count</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./count.html" class="navigation-link">count</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="count">
<h1><a class="toc-backref" href="./querying-algorithms.html#id406" name="count">count</a></h1>
<div class="section" id="count-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1478">count</a></h1>
<div class="section" id="id559">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,33 +26,33 @@ struct <a href="./count.html" class="identifier">count</a>
};
</pre>
</div>
<div class="section" id="count-description">
<div class="section" id="id560">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the number of elements in a <tt class="literal"><span class="pre">Sequence</span></tt> that are identical to <tt class="literal"><span class="pre">T</span></tt>.</p>
</div>
<div class="section" id="count-header">
<div class="section" id="id561">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/count.hpp" class="header">boost/mpl/count.hpp</a>&gt;
</pre>
</div>
<div class="section" id="count-parameters">
<div class="section" id="id562">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">T</span></tt></td>
@@ -65,17 +62,18 @@ struct <a href="./count.html" class="identifier">count</a>
</tbody>
</table>
</div>
<div class="section" id="count-expression-semantics">
<div class="section" id="id563">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./count.html" class="identifier">count</a>&lt;s,t&gt;::type n;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -86,11 +84,11 @@ typedef <a href="./count-if.html" class="identifier">count_if</a>&lt; s,is_same&
</tbody>
</table>
</div>
<div class="section" id="count-complexity">
<div class="section" id="id564">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> comparisons for identity.</p>
</div>
<div class="section" id="count-example">
<div class="section" id="id565">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;int,char,long,short,char,short,double,long&gt; types;
@@ -99,15 +97,16 @@ typedef <a href="./count.html" class="identifier">count</a>&lt;types, short&gt;:
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( n::value, ==, 2 );
</pre>
</div>
<div class="section" id="count-see-also">
<div class="section" id="id566">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./count-if.html"><tt class="refentry literal"><span class="pre">count_if</span></tt></a>, <a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a>, <a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a>, <a class="refentry reference" href="./contains.html"><tt class="refentry literal"><span class="pre">contains</span></tt></a>, <a class="refentry reference" href="./lower-bound.html"><tt class="refentry literal"><span class="pre">lower_bound</span></tt></a></p>
<!-- modtime: November 13, 2004 01:52:16 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./count-if.html">count_if</a>, <a class="reference internal" href="./find.html">find</a>, <a class="reference internal" href="./find-if.html">find_if</a>, <a class="reference internal" href="./contains.html">contains</a>, <a class="reference internal" href="./lower-bound.html">lower_bound</a></p>
<!-- Algorithms/Querying Algorithms//count_if |50 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./contains.html" class="navigation-link">Prev</a>&nbsp;<a href="./count-if.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./contains.html" class="navigation-link">Back</a>&nbsp;<a href="./count-if.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
-30
View File
@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Miscellaneous</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./pair.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-miscellaneous.html" class="navigation-link">Miscellaneous</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="data-miscellaneous">
<h1><a class="toc-backref" href="./data-types.html#id505" name="data-miscellaneous">Miscellaneous</a></h1>
<a class="target" id="id279" name="id279"></a><!-- Data Types/Miscellaneous//pair |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./pair.html" id="id506" name="id506">pair</a></li>
<li><a class="reference" href="./empty-base.html" id="id507" name="id507">empty_base</a></li>
<li><a class="reference" href="./void.html" id="id508" name="id508">void_</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./integral-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./pair.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
</html>
@@ -1,28 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Concepts</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Prev</a>&nbsp;<a href="./integral-constant.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./numeric.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-concepts.html" class="navigation-link">Concepts</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-types-concepts.html" class="navigation-link">Concepts</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="data-concepts">
<h1><a class="toc-backref" href="./data-types.html#id497" name="data-concepts">Concepts</a></h1>
<a class="target" id="label-data-types-concepts" name="label-data-types-concepts"></a><!-- Data Types/Concepts//Integral Constant -->
<div class="section" id="id1216">
<h1><a class="toc-backref" href="./data-types.html#id1573"><a class="subsection-title" href="#concepts" name="concepts">Concepts</a></a></h1>
<!-- Data Types/Concepts//Integral Constant -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./integral-constant.html" id="id498" name="id498">Integral Constant</a></li>
<li><a class="reference internal" href="./integral-constant.html" id="id1574">Integral Constant</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Prev</a>&nbsp;<a href="./integral-constant.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./numeric.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Miscellaneous</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./char.html" class="navigation-link">Prev</a>&nbsp;<a href="./pair.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-types-miscellaneous.html" class="navigation-link">Miscellaneous</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="id1270">
<h1><a class="toc-backref" href="./data-types.html#id1582"><a class="subsection-title" href="#miscellaneous" name="miscellaneous">Miscellaneous</a></a></h1>
<!-- Data Types/Miscellaneous//pair |10 -->
<ul class="toc simple" id="outline">
<li><a class="reference internal" href="./pair.html" id="id1583">pair</a></li>
<li><a class="reference internal" href="./empty-base.html" id="id1584">empty_base</a></li>
<li><a class="reference internal" href="./void.html" id="id1585">void_</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./char.html" class="navigation-link">Prev</a>&nbsp;<a href="./pair.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./numeric.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+11 -13
View File
@@ -1,30 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Data Types</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./sizeof.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Back</a>&nbsp;<a href="./macros.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./sizeof.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-types-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Back</a>&nbsp;<a href="./macros.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="data-types">
<h1><a class="toc-backref" href="../refmanual.html#id496" name="data-types">Data Types</a></h1>
<a class="target" id="label-data-types" name="label-data-types"></a><a class="target" id="data" name="data"></a><!-- modtime: November 08, 2004 09:39:06 +0000 -->
<ul class="toc simple" id="outline">
<li><a class="reference" href="./data-concepts.html" id="id497" name="id497">Concepts</a></li>
<li><a class="reference" href="./numeric.html" id="id499" name="id499">Numeric</a></li>
<li><a class="reference" href="./data-miscellaneous.html" id="id505" name="id505">Miscellaneous</a></li>
<h1><a class="toc-backref" href="../refmanual.html#id1572">Data Types</a></h1>
<span class="target" id="data"><span id="label-data-types"></span></span><ul class="toc simple" id="outline">
<li><a class="reference internal" href="./data-types-concepts.html" id="id1573">Concepts</a></li>
<li><a class="reference internal" href="./numeric.html" id="id1575">Numeric</a></li>
<li><a class="reference internal" href="./data-types-miscellaneous.html" id="id1582">Miscellaneous</a></li>
</ul>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./sizeof.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Back</a>&nbsp;<a href="./macros.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./sizeof.html" class="navigation-link">Prev</a>&nbsp;<a href="./data-types-concepts.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./metafunctions.html" class="navigation-link">Back</a>&nbsp;<a href="./macros.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="../refmanual.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+22 -24
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: deque</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,35 +12,35 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./classes.html" class="navigation-link">Classes</a> / <a href="./deque.html" class="navigation-link">deque</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="deque">
<h1><a class="toc-backref" href="./classes.html#id337" name="deque">deque</a></h1>
<div class="section" id="deque-description">
<h1><a class="toc-backref" href="./classes.html#id1408">deque</a></h1>
<div class="section" id="id64">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./deque.html" class="identifier">deque</a></span></tt> is a <a class="reference" href="./variadic-sequence.html">variadic</a>, <a class="reference" href="./random-access-sequence.html">random access</a>, <a class="reference" href="./extensible-sequence.html">extensible</a> sequence of types that
supports constant-time insertion and removal of elements at both ends, and
linear-time insertion and removal of elements in the middle. In this implementation
of the library, <tt class="literal"><span class="pre"><a href="./deque.html" class="identifier">deque</a></span></tt> is a synonym for <a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a>.</p>
<p><tt class="literal"><span class="pre"><a href="./deque.html" class="identifier">deque</a></span></tt> is a <a class="reference internal" href="./variadic-sequence.html">variadic</a>, <a class="reference internal" href="./random-access-sequence.html">random access</a>, <a class="reference internal" href="./extensible-sequence.html">extensible</a> sequence of types that
supports constant-time insertion and removal of elements at both ends, and
linear-time insertion and removal of elements in the middle. In this implementation
of the library, <tt class="literal"><span class="pre"><a href="./deque.html" class="identifier">deque</a></span></tt> is a synonym for <a class="reference internal" href="./vector.html">vector</a>.</p>
</div>
<div class="section" id="deque-header">
<div class="section" id="id67">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/deque.hpp" class="header">boost/mpl/deque.hpp</a>&gt;
</pre>
</div>
<div class="section" id="deque-model-of">
<div class="section" id="id68">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<ul class="simple">
<li><a class="reference" href="./variadic-sequence.html">Variadic Sequence</a></li>
<li><a class="reference" href="./random-access-sequence.html">Random Access Sequence</a></li>
<li><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></li>
<li><a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a></li>
<li><a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li>
<li><a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a></li>
<li><a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a></li>
<li><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></li>
<li><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></li>
<li><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li>
</ul>
</div>
<div class="section" id="deque-expression-semantics">
<div class="section" id="id69">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>See <a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a> specification.</p>
<p>See <a class="reference internal" href="./vector.html">vector</a> specification.</p>
</div>
<div class="section" id="deque-example">
<div class="section" id="id70">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./deque.html" class="identifier">deque</a>&lt;float,double,long double&gt; floats;
@@ -52,15 +49,16 @@ typedef <a href="./push-back.html" class="identifier">push_back</a>&lt;floats,in
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./at-c.html" class="identifier">at_c</a>&lt;types,3&gt;::type, int > ));
</pre>
</div>
<div class="section" id="deque-see-also">
<div class="section" id="id71">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a>, <a class="refentry reference" href="./list.html"><tt class="refentry literal"><span class="pre">list</span></tt></a>, <a class="refentry reference" href="./set.html"><tt class="refentry literal"><span class="pre">set</span></tt></a></p>
<!-- modtime: November 15, 2004 01:17:18 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./vector.html">vector</a>, <a class="reference internal" href="./list.html">list</a>, <a class="reference internal" href="./set.html">set</a></p>
<!-- Sequences/Classes//set |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./list.html" class="navigation-link">Prev</a>&nbsp;<a href="./set.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./list.html" class="navigation-link">Back</a>&nbsp;<a href="./set.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./classes.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+27 -27
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: deref</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./iterators.html" class="navigation-link">Iterators</a> / <a href="./iterator-metafunctions.html" class="navigation-link">Iterator Metafunctions</a> / <a href="./deref.html" class="navigation-link">deref</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="deref">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id386" name="deref">deref</a></h1>
<div class="section" id="deref-synopsis">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id1458">deref</a></h1>
<div class="section" id="id437">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,54 +25,56 @@ struct <a href="./deref.html" class="identifier">deref</a>
};
</pre>
</div>
<div class="section" id="deref-description">
<div class="section" id="id438">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Dereferences an iterator.</p>
</div>
<div class="section" id="deref-header">
<div class="section" id="id439">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/deref.hpp" class="header">boost/mpl/deref.hpp</a>&gt;
</pre>
</div>
<div class="section" id="deref-parameters">
<div class="section" id="id440">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Iterator</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>The iterator to dereference.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="deref-expression-semantics">
<div class="section" id="id441">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-iterator.html">Forward Iterator</a>s <tt class="literal"><span class="pre">iter</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>s <tt class="literal"><span class="pre">iter</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./deref.html" class="identifier">deref</a>&lt;iter&gt;::type t;
typedef <a href="./deref.html" class="identifier">deref</a>&lt;iter&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">iter</span></tt> is dereferenceable.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">iter</span></tt> is dereferenceable.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">t</span></tt> is identical to the element referenced by <tt class="literal"><span class="pre">iter</span></tt>. If <tt class="literal"><span class="pre">iter</span></tt> is
a user-defined iterator, the library-provided default implementation is
a user-defined iterator, the library-provided default implementation is
equivalent to</p>
<pre class="last literal-block">
typedef iter::type t;
@@ -85,11 +84,11 @@ typedef iter::type t;
</tbody>
</table>
</div>
<div class="section" id="deref-complexity">
<div class="section" id="id442">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="deref-example">
<div class="section" id="id443">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;char,short,int,long&gt; types;
@@ -98,15 +97,16 @@ typedef <a href="./begin.html" class="identifier">begin</a>&lt;types&gt;::type i
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./deref.html" class="identifier">deref</a>&lt;iter&gt;::type, char > ));
</pre>
</div>
<div class="section" id="deref-see-also">
<div class="section" id="id444">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a> / <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a></p>
<!-- modtime: November 11, 2004 11:17:11 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./begin.html">begin</a> / <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./next.html">next</a></p>
<!-- Iterators/Iterator Metafunctions//iterator_category |60 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./prior.html" class="navigation-link">Prev</a>&nbsp;<a href="./iterator-category.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./prior.html" class="navigation-link">Back</a>&nbsp;<a href="./iterator-category.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterator-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+35 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: distance</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./iterators.html" class="navigation-link">Iterators</a> / <a href="./iterator-metafunctions.html" class="navigation-link">Iterator Metafunctions</a> / <a href="./distance.html" class="navigation-link">distance</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="distance">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id383" name="distance">distance</a></h1>
<div class="section" id="distance-synopsis">
<h1><a class="toc-backref" href="./iterator-metafunctions.html#id1455">distance</a></h1>
<div class="section" id="id412">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,81 +26,84 @@ struct <a href="./distance.html" class="identifier">distance</a>
};
</pre>
</div>
<div class="section" id="distance-description">
<div class="section" id="id413">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the distance between <tt class="literal"><span class="pre">First</span></tt> and <tt class="literal"><span class="pre">Last</span></tt> iterators, that is, an
<a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt> such that <tt class="literal"><span class="pre"><a href="./advance.html" class="identifier">advance</a>&lt;First,n&gt;::type</span></tt> is
<p>Returns the distance between <tt class="literal"><span class="pre">First</span></tt> and <tt class="literal"><span class="pre">Last</span></tt> iterators, that is, an
<a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">n</span></tt> such that <tt class="literal"><span class="pre"><a href="./advance.html" class="identifier">advance</a>&lt;First,n&gt;::type</span></tt> is
identical to <tt class="literal"><span class="pre">Last</span></tt>.</p>
</div>
<div class="section" id="distance-header">
<div class="section" id="id414">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/distance.hpp" class="header">boost/mpl/distance.hpp</a>&gt;
</pre>
</div>
<div class="section" id="distance-parameters">
<div class="section" id="id415">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="35%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">First</span></tt>,
<tt class="literal"><span class="pre">Last</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>Iterators to compute a
distance between.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="distance-model-of">
<div class="section" id="id416">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model Of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="distance-expression-semantics">
<div class="section" id="id417">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-iterator.html">Forward Iterator</a>s <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>s <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./distance.html" class="identifier">distance</a>&lt;first,last&gt;::type n;
typedef <a href="./distance.html" class="identifier">distance</a>&lt;first,last&gt;::type n;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">[<tt class="literal"><span class="pre">first</span></tt>, <tt class="literal"><span class="pre">last</span></tt>) is a valid range.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">[<tt class="literal"><span class="pre">first</span></tt>, <tt class="literal"><span class="pre">last</span></tt>) is a valid range.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
<pre class="literal-block">
typedef <a href="./iter-fold.html" class="identifier">iter_fold</a>&lt;
<a href="./iterator-range.html" class="identifier">iterator_range</a>&lt;first,last&gt;
, <a href="./long.html" class="identifier">long_</a>&lt;0&gt;
, <a href="./next.html" class="identifier">next</a>&lt;_1&gt;
, <a href="./next.html" class="identifier">next</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;
&gt;::type n;
</pre>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre">is_same&lt;</span> <span class="pre"><a href="./advance.html" class="identifier">advance</a>&lt;first,n&gt;::type,</span> <span class="pre">last</span> <span class="pre">&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</td>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first last"><tt class="literal"><span class="pre">is_same&lt;</span> <span class="pre"><a href="./advance.html" class="identifier">advance</a>&lt;first,n&gt;::type,</span> <span class="pre">last</span> <span class="pre">&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="distance-complexity">
<div class="section" id="id418">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time if <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt> are <a class="reference" href="./random-access-iterator.html">Random Access Iterator</a>s,
<p>Amortized constant time if <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt> are <a class="reference internal" href="./random-access-iterator.html">Random Access Iterator</a>s,
otherwise linear time.</p>
</div>
<div class="section" id="distance-example">
<div class="section" id="id419">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt;::type range;
@@ -113,15 +113,16 @@ typedef <a href="./end.html" class="identifier">end</a>&lt;range&gt;::type last;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( (<a href="./distance.html" class="identifier">distance</a>&lt;first,last&gt;::value), ==, 10);
</pre>
</div>
<div class="section" id="distance-see-also">
<div class="section" id="id420">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a>, <a class="refentry reference" href="./advance.html"><tt class="refentry literal"><span class="pre">advance</span></tt></a>, <a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a>, <a class="refentry reference" href="./prior.html"><tt class="refentry literal"><span class="pre">prior</span></tt></a></p>
<!-- modtime: November 11, 2004 11:16:46 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a>, <a class="reference internal" href="./advance.html">advance</a>, <a class="reference internal" href="./next.html">next</a>, <a class="reference internal" href="./prior.html">prior</a></p>
<!-- Iterators/Iterator Metafunctions//next |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./advance.html" class="navigation-link">Prev</a>&nbsp;<a href="./next.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./advance.html" class="navigation-link">Back</a>&nbsp;<a href="./next.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterator-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+38 -36
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: divides</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./arithmetic-operations.html" class="navigation-link">Arithmetic Operations</a> / <a href="./divides.html" class="navigation-link">divides</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="divides">
<h1><a class="toc-backref" href="./arithmetic-operations.html#id465" name="divides">divides</a></h1>
<div class="section" id="divides-synopsis">
<h1><a class="toc-backref" href="./arithmetic-operations.html#id1539">divides</a></h1>
<div class="section" id="id987">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -32,60 +29,62 @@ struct <a href="./divides.html" class="identifier">divides</a>
};
</pre>
</div>
<div class="section" id="divides-description">
<div class="section" id="id988">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the quotient of its arguments.</p>
</div>
<div class="section" id="divides-header">
<div class="section" id="id989">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/divides.hpp" class="header">boost/mpl/divides.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/arithmetic.hpp" class="header">boost/mpl/arithmetic.hpp</a>&gt;
</pre>
</div>
<div class="section" id="divides-model-of">
<div class="section" id="id990">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="divides-parameters">
<div class="section" id="id991">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="divides-expression-semantics">
<div class="section" id="id992">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>:</p>
<pre class="literal-block">
typedef <a href="./divides.html" class="identifier">divides</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./divides.html" class="identifier">divides</a>&lt;c1,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">c2::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>, <em>...</em> <tt class="literal"><span class="pre">cn::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">c2::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>, <em>...</em> <tt class="literal"><span class="pre">cn::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -93,8 +92,8 @@ typedef <a href="./integral-c.html" class="identifier">integral_c</a>&lt;
typeof(c1::value / c2::value)
, ( c1::value / c2::value )
&gt; c;
typedef <a href="./divides.html" class="identifier">divides</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
typedef <a href="./divides.html" class="identifier">divides</a>&lt;c,c3,<em>...</em>c<em>n</em>&gt;::type r;
</pre>
</td>
</tr>
@@ -104,13 +103,15 @@ typedef <a href="./divides.html" class="identifier">divides</a>&lt;c,c3,<em>...<
<pre class="literal-block">
typedef <a href="./divides.html" class="identifier">divides</a>&lt;c1,<em>...</em>c<em>n</em>&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">c2::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>, <em>...</em> <tt class="literal"><span class="pre">cn::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">c2::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>, <em>...</em> <tt class="literal"><span class="pre">cn::value</span> <span class="pre">!=</span> <span class="pre">0</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -121,11 +122,11 @@ struct r : <a href="./divides.html" class="identifier">divides</a>&lt;c1,<em>...
</tbody>
</table>
</div>
<div class="section" id="divides-complexity">
<div class="section" id="id993">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="divides-example">
<div class="section" id="id994">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./divides.html" class="identifier">divides</a>&lt; <a href="./int.html" class="identifier">int_</a>&lt;-10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;3&gt;, <a href="./long.html" class="identifier">long_</a>&lt;1&gt; &gt;::type r;
@@ -133,15 +134,16 @@ typedef <a href="./divides.html" class="identifier">divides</a>&lt; <a href="./i
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r::<a href="./value-type.html" class="identifier">value_type</a>, long > ));
</pre>
</div>
<div class="section" id="divides-see-also">
<div class="section" id="id995">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./arithmetic-operations.html">Arithmetic Operations</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./times.html"><tt class="refentry literal"><span class="pre">times</span></tt></a>, <a class="refentry reference" href="./modulus.html"><tt class="refentry literal"><span class="pre">modulus</span></tt></a>, <a class="refentry reference" href="./plus.html"><tt class="refentry literal"><span class="pre">plus</span></tt></a></p>
<!-- modtime: November 10, 2004 04:43:02 +0000 -->
<p><a class="reference internal" href="./arithmetic-operations.html">Arithmetic Operations</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./times.html">times</a>, <a class="reference internal" href="./modulus.html">modulus</a>, <a class="reference internal" href="./plus.html">plus</a></p>
<!-- Metafunctions/Arithmetic Operations//modulus |50 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./times.html" class="navigation-link">Prev</a>&nbsp;<a href="./modulus.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./times.html" class="navigation-link">Back</a>&nbsp;<a href="./modulus.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./arithmetic-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+14 -16
View File
@@ -1,47 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: empty_base</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./pair.html" class="navigation-link">Prev</a>&nbsp;<a href="./void.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./pair.html" class="navigation-link">Back</a>&nbsp;<a href="./void.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./empty-base.html" class="navigation-link">empty_base</a></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./pair.html" class="navigation-link">Prev</a>&nbsp;<a href="./void.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./pair.html" class="navigation-link">Back</a>&nbsp;<a href="./void.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types-miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./data-types.html" class="navigation-link">Data Types</a> / <a href="./data-types-miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./empty-base.html" class="navigation-link">empty_base</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="empty-base">
<h1><a class="toc-backref" href="./data-miscellaneous.html#id507" name="empty-base">empty_base</a></h1>
<div class="section" id="data-empty-synopsis">
<h1><a class="toc-backref" href="./data-types-miscellaneous.html#id1584">empty_base</a></h1>
<div class="section" id="id1276">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
struct <a href="./empty-base.html" class="identifier">empty_base</a> {};
</pre>
</div>
<div class="section" id="data-empty-description">
<div class="section" id="id1277">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An empty base class. Inheritance from <a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a> through the <a class="refentry reference" href="./inherit.html"><tt class="refentry literal"><span class="pre">inherit</span></tt></a>
<p>An empty base class. Inheritance from <a class="reference internal" href="./empty-base.html">empty_base</a> through the <a class="reference internal" href="./inherit.html">inherit</a>
metafunction is a no-op.</p>
</div>
<div class="section" id="data-empty-header">
<div class="section" id="id1278">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/empty_base.hpp" class="header">boost/mpl/empty_base.hpp</a>&gt;
</pre>
</div>
<div class="section" id="data-empty-see-also">
<div class="section" id="id1279">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./data-types.html">Data Types</a>, <a class="refentry reference" href="./inherit.html"><tt class="refentry literal"><span class="pre">inherit</span></tt></a>, <a class="refentry reference" href="./inherit-linearly.html"><tt class="refentry literal"><span class="pre">inherit_linearly</span></tt></a>, <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:54 +0000 -->
<p><a class="reference internal" href="./data-types.html">Data Types</a>, <a class="reference internal" href="./inherit.html">inherit</a>, <a class="reference internal" href="./inherit-linearly.html">inherit_linearly</a>, <a class="reference internal" href="./void.html">void_</a></p>
<!-- Data Types/Miscellaneous//void_ |100 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./pair.html" class="navigation-link">Prev</a>&nbsp;<a href="./void.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./pair.html" class="navigation-link">Back</a>&nbsp;<a href="./void.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./pair.html" class="navigation-link">Prev</a>&nbsp;<a href="./void.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./pair.html" class="navigation-link">Back</a>&nbsp;<a href="./void.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./data-types-miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+18 -20
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: empty_sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./views.html" class="navigation-link">Views</a> / <a href="./empty-sequence.html" class="navigation-link">empty_sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="empty-sequence">
<h1><a class="toc-backref" href="./views.html#id345" name="empty-sequence">empty_sequence</a></h1>
<div class="section" id="empty-synopsis">
<h1><a class="toc-backref" href="./views.html#id1417">empty_sequence</a></h1>
<div class="section" id="id120">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
struct <a href="./empty-sequence.html" class="identifier">empty_sequence</a>
@@ -26,42 +23,42 @@ struct <a href="./empty-sequence.html" class="identifier">empty_sequence</a>
};
</pre>
</div>
<div class="section" id="empty-description">
<div class="section" id="id121">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Represents a sequence containing no elements.</p>
</div>
<div class="section" id="empty-header">
<div class="section" id="id122">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/empty_sequence.hpp" class="header">boost/mpl/empty_sequence.hpp</a>&gt;
</pre>
</div>
<div class="section" id="empty-expression-semantics">
<div class="section" id="id123">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>.</p>
where they differ from, or are not defined in <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>.</p>
<p>In the following table, <tt class="literal"><span class="pre">s</span></tt> is an instance of <tt class="literal"><span class="pre"><a href="./empty-sequence.html" class="identifier">empty_sequence</a></span></tt>.</p>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="34%" />
<col width="66%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./empty-sequence.html" class="identifier">empty_sequence</a></span></tt></td>
<td>An empty <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>.</td>
<td>An empty <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::type</span></tt></td>
<td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">0</span></tt>; see <a class="reference" href="./random-access-sequence.html">Random Access Sequence</a>.</td>
<td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">0</span></tt>; see <a class="reference internal" href="./random-access-sequence.html">Random Access Sequence</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="empty-example">
<div class="section" id="id124">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./begin.html" class="identifier">begin</a>&lt;<a href="./empty-sequence.html" class="identifier">empty_sequence</a>&gt;::type first;
@@ -78,15 +75,16 @@ typedef <a href="./transform-view.html" class="identifier">transform_view</a>&lt
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./size.html" class="identifier">size</a>&lt;<a href="./empty-sequence.html" class="identifier">empty_sequence</a>&gt;::value, ==, 0 );
</pre>
</div>
<div class="section" id="empty-see-also">
<div class="section" id="id125">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./views.html">Views</a>, <a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a>, <a class="refentry reference" href="./list.html"><tt class="refentry literal"><span class="pre">list</span></tt></a>, <a class="refentry reference" href="./single-view.html"><tt class="refentry literal"><span class="pre">single_view</span></tt></a></p>
<!-- modtime: November 13, 2004 20:20:53 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./views.html">Views</a>, <a class="reference internal" href="./vector.html">vector</a>, <a class="reference internal" href="./list.html">list</a>, <a class="reference internal" href="./single-view.html">single_view</a></p>
<!-- Sequences/Views//filter_view -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./views.html" class="navigation-link">Prev</a>&nbsp;<a href="./filter-view.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./filter-view.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./views.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: empty</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./empty.html" class="navigation-link">empty</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="empty">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id358" name="empty">empty</a></h1>
<div class="section" id="intrinsic-empty-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1430">empty</a></h1>
<div class="section" id="id220">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,54 +25,54 @@ struct <a href="./empty.html" class="identifier">empty</a>
};
</pre>
</div>
<div class="section" id="intrinsic-empty-description">
<div class="section" id="id221">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if
<p>Returns an <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if
and only if the sequence is empty.</p>
</div>
<div class="section" id="intrinsic-empty-header">
<div class="section" id="id222">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/empty.hpp" class="header">boost/mpl/empty.hpp</a>&gt;
</pre>
</div>
<div class="section" id="empty-model-of">
<div class="section" id="id223">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="empty-parameters">
<div class="section" id="id224">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="32%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to test.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-empty-expression-semantics">
<div class="section" id="id225">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type c;
typedef <a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type c;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Boolean <a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">Equivalent to <tt class="literal"><span class="pre">typedef</span> <span class="pre">is_same&lt;</span> <span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type,<a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span> <span class="pre">&gt;::type</span> <span class="pre">c;</span></tt>.</td>
</tr>
@@ -84,11 +81,11 @@ typedef <a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type c;
</tbody>
</table>
</div>
<div class="section" id="empty-complexity">
<div class="section" id="id226">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="intrinsic-empty-example">
<div class="section" id="id227">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,0&gt; empty_range;
@@ -98,15 +95,16 @@ typedef <a href="./vector.html" class="identifier">vector</a>&lt;long,float,doub
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>( <a href="./empty.html" class="identifier">empty</a>&lt;types&gt; );
</pre>
</div>
<div class="section" id="intrinsic-empty-see-also">
<div class="section" id="id228">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./size.html"><tt class="refentry literal"><span class="pre">size</span></tt></a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a> / <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a></p>
<!-- modtime: November 15, 2004 02:43:18 +0000 -->
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./size.html">size</a>, <a class="reference internal" href="./begin.html">begin</a> / <a class="reference internal" href="./end.html">end</a></p>
<!-- Sequences/Intrinsic Metafunctions//end -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./clear.html" class="navigation-link">Prev</a>&nbsp;<a href="./end.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./clear.html" class="navigation-link">Back</a>&nbsp;<a href="./end.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+27 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: end</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./end.html" class="navigation-link">end</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="end">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id359" name="end">end</a></h1>
<div class="section" id="end-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1431">end</a></h1>
<div class="section" id="id229">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,33 +25,33 @@ struct <a href="./end.html" class="identifier">end</a>
};
</pre>
</div>
<div class="section" id="end-description">
<div class="section" id="id230">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the sequence's past-the-end iterator. If the argument is not a
<a class="reference" href="./forward-sequence.html">Forward Sequence</a>, returns <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</p>
<p>Returns the sequence's past-the-end iterator. If the argument is not a
<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, returns <a class="reference internal" href="./void.html">void_</a>.</p>
</div>
<div class="section" id="end-header">
<div class="section" id="id231">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/begin_end.hpp" class="header">boost/mpl/begin_end.hpp</a>&gt;
</pre>
</div>
<div class="section" id="end-model-of">
<div class="section" id="id232">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="end-parameters">
<div class="section" id="id233">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="23%" />
<col width="58%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -66,31 +63,31 @@ returned.</td>
</tbody>
</table>
</div>
<div class="section" id="end-expression-semantics">
<div class="section" id="id234">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./end.html" class="identifier">end</a>&lt;x&gt;::type last;
typedef <a href="./end.html" class="identifier">end</a>&lt;x&gt;::type last;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./forward-iterator.html">Forward Iterator</a> or <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a> or <a class="reference internal" href="./void.html">void_</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">x</span></tt> is <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">last</span></tt> is an iterator pointing one past the
last element in <tt class="literal"><span class="pre">s</span></tt>; otherwise <tt class="literal"><span class="pre">last</span></tt> is <a class="refentry reference" href="./void.html"><tt class="refentry literal"><span class="pre">void_</span></tt></a>.</td>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">x</span></tt> is <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">last</span></tt> is an iterator pointing one past the
last element in <tt class="literal"><span class="pre">s</span></tt>; otherwise <tt class="literal"><span class="pre">last</span></tt> is <a class="reference internal" href="./void.html">void_</a>.</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body">If <tt class="literal"><span class="pre">last</span></tt> is an iterator, it is past-the-end.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="end-complexity">
<div class="section" id="id235">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="end-example">
<div class="section" id="id236">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;long&gt; v;
@@ -100,15 +97,16 @@ typedef <a href="./end.html" class="identifier">end</a>&lt;v&gt;::type last;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./next.html" class="identifier">next</a>&lt;first&gt;::type, last > ));
</pre>
</div>
<div class="section" id="end-see-also">
<div class="section" id="id237">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a>, <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a></p>
<!-- modtime: November 13, 2004 01:26:54 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./begin.html">begin</a>, <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./next.html">next</a></p>
<!-- Sequences/Intrinsic Metafunctions//erase -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./empty.html" class="navigation-link">Prev</a>&nbsp;<a href="./erase.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./empty.html" class="navigation-link">Back</a>&nbsp;<a href="./erase.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: equal_to</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./comparisons.html" class="navigation-link">Comparisons</a> / <a href="./equal-to.html" class="navigation-link">equal_to</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="equal-to">
<h1><a class="toc-backref" href="./comparisons.html#id473" name="equal-to">equal_to</a></h1>
<div class="section" id="comparisons-equal-synopsis">
<h1><a class="toc-backref" href="./comparisons.html#id1547">equal_to</a></h1>
<div class="section" id="id1050">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,58 +26,59 @@ struct <a href="./equal-to.html" class="identifier">equal_to</a>
};
</pre>
</div>
<div class="section" id="comparisons-equal-description">
<div class="section" id="id1051">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> and <tt class="literal"><span class="pre">T2</span></tt> are equal.</p>
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> and <tt class="literal"><span class="pre">T2</span></tt> are equal.</p>
</div>
<div class="section" id="comparisons-equal-header">
<div class="section" id="id1052">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/equal_to.hpp" class="header">boost/mpl/equal_to.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/comparison.hpp" class="header">boost/mpl/comparison.hpp</a>&gt;
</pre>
</div>
<div class="section" id="equal-model-of">
<div class="section" id="id1053">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="comparisons-equal-parameters">
<div class="section" id="id1054">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="comparisons-equal-expression-semantics">
<div class="section" id="id1055">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt;::type r;
typedef <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -92,13 +90,14 @@ typedef <a href="./bool.html" class="identifier">bool_</a>&lt; (c1::value == c2:
</table>
<!-- .......................................................................... -->
<pre class="literal-block">
typedef <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt; r;
typedef <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -109,11 +108,11 @@ struct r : <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt
</tbody>
</table>
</div>
<div class="section" id="comparisons-equal-complexity">
<div class="section" id="id1056">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="comparisons-equal-example">
<div class="section" id="id1057">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./equal-to.html" class="identifier">equal_to</a>&lt; <a href="./int.html" class="identifier">int_</a>&lt;0&gt;, <a href="./int.html" class="identifier">int_</a>&lt;10&gt; &gt; ));
@@ -121,15 +120,16 @@ struct r : <a href="./equal-to.html" class="identifier">equal_to</a>&lt;c1,c2&gt
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal-to.html" class="identifier">equal_to</a>&lt; <a href="./long.html" class="identifier">long_</a>&lt;10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;10&gt; > ));
</pre>
</div>
<div class="section" id="comparisons-equal-see-also">
<div class="section" id="id1058">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./comparisons.html">Comparisons</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./not-equal-to.html"><tt class="refentry literal"><span class="pre">not_equal_to</span></tt></a>, <a class="refentry reference" href="./less.html"><tt class="refentry literal"><span class="pre">less</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:40 +0000 -->
<p><a class="reference internal" href="./comparisons.html">Comparisons</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./not-equal-to.html">not_equal_to</a>, <a class="reference internal" href="./less.html">less</a></p>
<!-- Metafunctions/Comparisons//not_equal_to |60 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./greater-equal.html" class="navigation-link">Prev</a>&nbsp;<a href="./not-equal-to.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./greater-equal.html" class="navigation-link">Back</a>&nbsp;<a href="./not-equal-to.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./comparisons.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+28 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: equal</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,14 +12,14 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./equal.html" class="navigation-link">equal</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="equal">
<h1><a class="toc-backref" href="./querying-algorithms.html#id412" name="equal">equal</a></h1>
<div class="section" id="equal-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1484">equal</a></h1>
<div class="section" id="id607">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
typename Seq1
, typename Seq2
, typename Pred = is_same&lt;_1,_2&gt;
, typename Pred = is_same&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt;
&gt;
struct <a href="./equal.html" class="identifier">equal</a>
{
@@ -30,56 +27,57 @@ struct <a href="./equal.html" class="identifier">equal</a>
};
</pre>
</div>
<div class="section" id="equal-description">
<div class="section" id="id608">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if the two sequences <tt class="literal"><span class="pre">Seq1</span></tt>
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if the two sequences <tt class="literal"><span class="pre">Seq1</span></tt>
and <tt class="literal"><span class="pre">Seq2</span></tt> are identical when compared element-by-element.</p>
</div>
<div class="section" id="equal-header">
<div class="section" id="id609">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/equal.hpp" class="header">boost/mpl/equal.hpp</a>&gt;
</pre>
</div>
<div class="section" id="equal-parameters">
<div class="section" id="id610">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="22%" />
<col width="36%" />
<col width="41%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Seq1</span></tt>, <tt class="literal"><span class="pre">Seq2</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>Sequences to compare.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pred</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A comparison criterion.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="equal-expression-semantics">
<div class="section" id="id611">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a>s <tt class="literal"><span class="pre">s1</span></tt> and <tt class="literal"><span class="pre">s2</span></tt> and a binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>s <tt class="literal"><span class="pre">s1</span></tt> and <tt class="literal"><span class="pre">s2</span></tt> and a binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./equal.html" class="identifier">equal</a>&lt;s1,s2,pred&gt;::type c;
typedef <a href="./equal.html" class="identifier">equal</a>&lt;s1,s2,pred&gt;::type c;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a></p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> is and only if <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s1&gt;::value</span> <span class="pre">==</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s2&gt;::value</span></tt>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> is and only if <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s1&gt;::value</span> <span class="pre">==</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s2&gt;::value</span></tt>
and for every iterator <tt class="literal"><span class="pre">i</span></tt> in [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s1&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s1&gt;::type</span></tt>) <tt class="literal"><span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type</span></tt> is identical to</p>
<pre class="last literal-block">
<a href="./advance.html" class="identifier">advance</a>&lt; <a href="./begin.html" class="identifier">begin</a>&lt;s2&gt;::type, <a href="./distance.html" class="identifier">distance</a>&lt; <a href="./begin.html" class="identifier">begin</a>&lt;s1&gt;::type,i &gt;::type &gt;::type
@@ -89,11 +87,11 @@ and for every iterator <tt class="literal"><span class="pre">i</span></tt> in [<
</tbody>
</table>
</div>
<div class="section" id="equal-complexity">
<div class="section" id="id612">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. At most <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s1&gt;::value</span></tt> comparisons.</p>
</div>
<div class="section" id="equal-example">
<div class="section" id="id613">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;char,int,unsigned,long,unsigned long&gt; s1;
@@ -102,14 +100,15 @@ typedef <a href="./list.html" class="identifier">list</a>&lt;char,int,unsigned,l
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt;s1,s2&gt; ));
</pre>
</div>
<div class="section" id="equal-see-also">
<div class="section" id="id614">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a>, <a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:44 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./find.html">find</a>, <a class="reference internal" href="./find-if.html">find_if</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./max-element.html" class="navigation-link">Prev</a>&nbsp;<a href="./transformation-algorithms.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./max-element.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+27 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: erase_key</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./erase-key.html" class="navigation-link">erase_key</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="erase-key">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id361" name="erase-key">erase_key</a></h1>
<div class="section" id="intrinsic-erase-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1433">erase_key</a></h1>
<div class="section" id="id247">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,38 +26,38 @@ struct <a href="./erase-key.html" class="identifier">erase_key</a>
};
</pre>
</div>
<div class="section" id="intrinsic-erase-description">
<div class="section" id="id248">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Erases elements associated with the key <tt class="literal"><span class="pre">Key</span></tt> in the <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>
<p>Erases elements associated with the key <tt class="literal"><span class="pre">Key</span></tt> in the <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>
<tt class="literal"><span class="pre">AssocSeq</span></tt> .</p>
</div>
<div class="section" id="intrinsic-erase-header">
<div class="section" id="id249">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/erase_key.hpp" class="header">boost/mpl/erase_key.hpp</a>&gt;
</pre>
</div>
<div class="section" id="intrinsic-erase-model-of">
<div class="section" id="id250">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="intrinsic-erase-parameters">
<div class="section" id="id251">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">AssocSeq</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>A sequence to erase elements from.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Key</span></tt></td>
@@ -70,19 +67,19 @@ struct <a href="./erase-key.html" class="identifier">erase_key</a>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-erase-expression-semantics">
<div class="section" id="id252">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">key</span></tt>:</p>
<p>For any <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">key</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,key&gt;::type r;
typedef <a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,key&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> and equivalent to <tt class="literal"><span class="pre">s</span></tt> except that
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> and equivalent to <tt class="literal"><span class="pre">s</span></tt> except that
<tt class="literal"><span class="pre"><a href="./has-key.html" class="identifier">has_key</a>&lt;r,k&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;r&gt;::value</span> <span class="pre">==</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span> <span class="pre">-</span> <span class="pre">1</span></tt>.</td>
@@ -90,11 +87,11 @@ typedef <a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,key&gt;
</tbody>
</table>
</div>
<div class="section" id="intrinsic-erase-complexity">
<div class="section" id="id253">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="intrinsic-erase-example">
<div class="section" id="id254">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./map.html" class="identifier">map</a>&lt; <a href="./pair.html" class="identifier">pair</a>&lt;int,unsigned&gt;, <a href="./pair.html" class="identifier">pair</a>&lt;char,long&gt; &gt; m;
@@ -105,15 +102,16 @@ typedef <a href="./erase-key.html" class="identifier">erase_key</a>&lt;m,char&gt
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./at.html" class="identifier">at</a>&lt;m1,int&gt;::type,unsigned > ));
</pre>
</div>
<div class="section" id="intrinsic-erase-see-also">
<div class="section" id="id255">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>, <a class="refentry reference" href="./has-key.html"><tt class="refentry literal"><span class="pre">has_key</span></tt></a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:33 +0000 -->
<p><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>, <a class="reference internal" href="./erase.html">erase</a>, <a class="reference internal" href="./has-key.html">has_key</a>, <a class="reference internal" href="./insert.html">insert</a></p>
<!-- Sequences/Intrinsic Metafunctions//front -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./erase.html" class="navigation-link">Prev</a>&nbsp;<a href="./front.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./erase.html" class="navigation-link">Back</a>&nbsp;<a href="./front.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+48 -45
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: erase</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./erase.html" class="navigation-link">erase</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="erase">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id360" name="erase">erase</a></h1>
<div class="section" id="erase-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1432">erase</a></h1>
<div class="section" id="id238">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,71 +27,74 @@ struct <a href="./erase.html" class="identifier">erase</a>
};
</pre>
</div>
<div class="section" id="erase-description">
<div class="section" id="id239">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a></span></tt> performs a removal of one or more adjacent elements in the sequence
<p><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a></span></tt> performs a removal of one or more adjacent elements in the sequence
starting from an arbitrary position.</p>
</div>
<div class="section" id="erase-header">
<div class="section" id="id240">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/erase.hpp" class="header">boost/mpl/erase.hpp</a>&gt;
</pre>
</div>
<div class="section" id="erase-model-of">
<div class="section" id="id241">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="erase-parameters">
<div class="section" id="id242">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>A sequence to erase from.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">First</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>An iterator to the beginning of the range to
be erased.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Last</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>An iterator past-the-end of the range to be
erased.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="erase-expression-semantics">
<div class="section" id="id243">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and iterators <tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt> into <tt class="literal"><span class="pre">s</span></tt>:</p>
<p class="compound-first">For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and iterators <tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre">first</span></tt> and <tt class="literal"><span class="pre">last</span></tt> into <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,first,last&gt;::type r;
typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,first,last&gt;::type r;
</pre>
<table class="compound-middle field-list" frame="void" rules="none">
<table class="compound-middle docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">[first,last)</span></tt> is a valid range in <tt class="literal"><span class="pre">s</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">[first,last)</span></tt> is a valid range in <tt class="literal"><span class="pre">s</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is a new sequence, <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), [<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</td>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">r</span></tt> is a new sequence, <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), [<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">The relative order of the elements in <tt class="literal"><span class="pre">r</span></tt> is the same as in <tt class="literal"><span class="pre">s</span></tt>;</p>
<pre class="last literal-block">
@@ -108,13 +108,15 @@ typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,first,last&gt;:
<pre class="compound-middle literal-block">
typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type r;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">pos</span></tt> is a dereferenceable iterator in <tt class="literal"><span class="pre">s</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">pos</span></tt> is a dereferenceable iterator in <tt class="literal"><span class="pre">s</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -126,15 +128,15 @@ typedef <a href="./erase.html" class="identifier">erase</a>&lt; s,pos,<a href=".
</table>
</div>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and iterator <tt class="literal"><span class="pre">pos</span></tt> into <tt class="literal"><span class="pre">s</span></tt>:</p>
<p class="compound-first">For any <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and iterator <tt class="literal"><span class="pre">pos</span></tt> into <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type r;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">pos</span></tt> is a dereferenceable iterator to <tt class="literal"><span class="pre">s</span></tt>.</td>
</tr>
@@ -147,29 +149,29 @@ typedef <a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type r
</table>
</div>
</div>
<div class="section" id="erase-complexity">
<div class="section" id="id244">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="45%" />
<col width="55%" />
</colgroup>
<thead valign="bottom">
<tr><th>Sequence archetype</th>
<th>Complexity (the range form)</th>
<tr><th class="head">Sequence archetype</th>
<th class="head">Complexity (the range form)</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<tr><td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time.</td>
</tr>
<tr><td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<tr><td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Quadratic in the worst case, linear at best.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="erase-example">
<div class="section" id="id245">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,1,0,5,1,7,5,0,5&gt; values;
@@ -182,15 +184,16 @@ typedef <a href="./find.html" class="identifier">find</a>&lt;result, <a href="./
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; iter, <a href="./end.html" class="identifier">end</a>&lt;result&gt;::type > ));
</pre>
</div>
<div class="section" id="erase-see-also">
<div class="section" id="id246">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>, <a class="refentry reference" href="./erase-key.html"><tt class="refentry literal"><span class="pre">erase_key</span></tt></a>, <a class="refentry reference" href="./pop-front.html"><tt class="refentry literal"><span class="pre">pop_front</span></tt></a>, <a class="refentry reference" href="./pop-back.html"><tt class="refentry literal"><span class="pre">pop_back</span></tt></a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:36 +0000 -->
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>, <a class="reference internal" href="./erase-key.html">erase_key</a>, <a class="reference internal" href="./pop-front.html">pop_front</a>, <a class="reference internal" href="./pop-back.html">pop_back</a>, <a class="reference internal" href="./insert.html">insert</a></p>
<!-- Sequences/Intrinsic Metafunctions//erase_key -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./end.html" class="navigation-link">Prev</a>&nbsp;<a href="./erase-key.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./end.html" class="navigation-link">Back</a>&nbsp;<a href="./erase-key.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+23 -25
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: eval_if_c</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./type-selection.html" class="navigation-link">Type Selection</a> / <a href="./eval-if-c.html" class="navigation-link">eval_if_c</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="eval-if-c">
<h1><a class="toc-backref" href="./type-selection.html#id449" name="eval-if-c">eval_if_c</a></h1>
<div class="section" id="type-eval-synopsis">
<h1><a class="toc-backref" href="./type-selection.html#id1523">eval_if_c</a></h1>
<div class="section" id="id880">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
bool c
, typename F1
, typename F2
@@ -30,30 +27,30 @@ struct <a href="./eval-if-c.html" class="identifier">eval_if_c</a>
};
</pre>
</div>
<div class="section" id="type-eval-description">
<div class="section" id="id881">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Evaluates one of its two <a class="reference" href="./metafunction.html#nullary-metafunction">nullary-metafunction</a> arguments, <tt class="literal"><span class="pre">F1</span></tt> or <tt class="literal"><span class="pre">F2</span></tt>, depending
on the value of integral constant <tt class="literal"><span class="pre">c</span></tt>. <tt class="literal"><span class="pre"><a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt;c,f1,f2&gt;::type</span></tt> is a shorcut
<p>Evaluates one of its two <a class="reference internal" href="./metafunction.html#nullary-metafunction">nullary-metafunction</a> arguments, <tt class="literal"><span class="pre">F1</span></tt> or <tt class="literal"><span class="pre">F2</span></tt>, depending
on the value of integral constant <tt class="literal"><span class="pre">c</span></tt>. <tt class="literal"><span class="pre"><a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt;c,f1,f2&gt;::type</span></tt> is a shorcut
notation for <tt class="literal"><span class="pre"><a href="./eval-if.html" class="identifier">eval_if</a>&lt;</span> <span class="pre"><a href="./bool.html" class="identifier">bool_</a>&lt;c&gt;,f1,f2</span> <span class="pre">&gt;::type</span></tt>.</p>
</div>
<div class="section" id="type-eval-header">
<div class="section" id="id882">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/eval_if.hpp" class="header">boost/mpl/eval_if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="type-eval-parameters">
<div class="section" id="id883">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -62,19 +59,19 @@ notation for <tt class="literal"><span class="pre"><a href="./eval-if.html" clas
<td>An evaluation condition.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">F1</span></tt>, <tt class="literal"><span class="pre">F2</span></tt></td>
<td>Nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
<td>Nullary <a class="reference internal" href="./metafunction.html">Metafunction</a></td>
<td>Metafunctions to select for evaluation from.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="type-eval-expression-semantics">
<div class="section" id="id884">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constant <tt class="literal"><span class="pre">c</span></tt> and nullary <a class="reference" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>:</p>
<p>For any integral constant <tt class="literal"><span class="pre">c</span></tt> and nullary <a class="reference internal" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt;c,f1,f2&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -85,7 +82,7 @@ typedef <a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt;c,f1,f2&g
</tbody>
</table>
</div>
<div class="section" id="type-eval-example">
<div class="section" id="id885">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt; true, <a href="./identity.html" class="identifier">identity</a>&lt;char&gt;, <a href="./identity.html" class="identifier">identity</a>&lt;long&gt; &gt;::type t1;
@@ -95,14 +92,15 @@ typedef <a href="./eval-if-c.html" class="identifier">eval_if_c</a>&lt; false, <
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t2,long&gt; ));
</pre>
</div>
<div class="section" id="type-eval-see-also">
<div class="section" id="id886">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./eval-if.html"><tt class="refentry literal"><span class="pre">eval_if</span></tt></a>, <a class="refentry reference" href="./if.html"><tt class="refentry literal"><span class="pre">if_</span></tt></a>, <a class="refentry reference" href="./bool.html"><tt class="refentry literal"><span class="pre">bool_</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:25 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./eval-if.html">eval_if</a>, <a class="reference internal" href="./if.html">if_</a>, <a class="reference internal" href="./bool.html">bool_</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./eval-if.html" class="navigation-link">Prev</a>&nbsp;<a href="./invocation.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./eval-if.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./type-selection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: eval_if</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./type-selection.html" class="navigation-link">Type Selection</a> / <a href="./eval-if.html" class="navigation-link">eval_if</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="eval-if">
<h1><a class="toc-backref" href="./type-selection.html#id448" name="eval-if">eval_if</a></h1>
<div class="section" id="eval-synopsis">
<h1><a class="toc-backref" href="./type-selection.html#id1522">eval_if</a></h1>
<div class="section" id="id873">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename C
, typename F1
, typename F2
@@ -30,80 +27,81 @@ struct <a href="./eval-if.html" class="identifier">eval_if</a>
};
</pre>
</div>
<div class="section" id="eval-description">
<div class="section" id="id874">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Evaluates one of its two <a class="reference" href="./metafunction.html#nullary-metafunction">nullary-metafunction</a> arguments, <tt class="literal"><span class="pre">F1</span></tt> or <tt class="literal"><span class="pre">F2</span></tt>, depending
<p>Evaluates one of its two <a class="reference internal" href="./metafunction.html#nullary-metafunction">nullary-metafunction</a> arguments, <tt class="literal"><span class="pre">F1</span></tt> or <tt class="literal"><span class="pre">F2</span></tt>, depending
on the value <tt class="literal"><span class="pre">C</span></tt>.</p>
</div>
<div class="section" id="eval-header">
<div class="section" id="id875">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/eval_if.hpp" class="header">boost/mpl/eval_if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="eval-parameters">
<div class="section" id="id876">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">C</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>An evaluation condition.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">F1</span></tt>, <tt class="literal"><span class="pre">F2</span></tt></td>
<td>Nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
<td>Nullary <a class="reference internal" href="./metafunction.html">Metafunction</a></td>
<td>Metafunctions to select for evaluation from.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="eval-expression-semantics">
<div class="section" id="id877">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> and nullary <a class="reference" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> and nullary <a class="reference internal" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./eval-if.html" class="identifier">eval_if</a>&lt;c,f1,f2&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Any type.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>, <tt class="literal"><span class="pre">t</span></tt> is identical to <tt class="literal"><span class="pre">f1::type</span></tt>; otherwise <tt class="literal"><span class="pre">t</span></tt> is
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>, <tt class="literal"><span class="pre">t</span></tt> is identical to <tt class="literal"><span class="pre">f1::type</span></tt>; otherwise <tt class="literal"><span class="pre">t</span></tt> is
identical to <tt class="literal"><span class="pre">f2::type</span></tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="eval-example">
<div class="section" id="id878">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./eval-if.html" class="identifier">eval_if</a>&lt; true_, <a href="./identity.html" class="identifier">identity</a>&lt;char&gt;, <a href="./identity.html" class="identifier">identity</a>&lt;long&gt; &gt;::type t1;
typedef <a href="./eval-if.html" class="identifier">eval_if</a>&lt; false_, <a href="./identity.html" class="identifier">identity</a>&lt;char&gt;, <a href="./identity.html" class="identifier">identity</a>&lt;long&gt; &gt;::type t2;
typedef <a href="./eval-if.html" class="identifier">eval_if</a>&lt; <a href="./bool.html" class="identifier">true_</a>, <a href="./identity.html" class="identifier">identity</a>&lt;char&gt;, <a href="./identity.html" class="identifier">identity</a>&lt;long&gt; &gt;::type t1;
typedef <a href="./eval-if.html" class="identifier">eval_if</a>&lt; <a href="./bool.html" class="identifier">false_</a>, <a href="./identity.html" class="identifier">identity</a>&lt;char&gt;, <a href="./identity.html" class="identifier">identity</a>&lt;long&gt; &gt;::type t2;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t1,char&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t2,long&gt; ));
</pre>
</div>
<div class="section" id="eval-see-also">
<div class="section" id="id879">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./eval-if-c.html"><tt class="refentry literal"><span class="pre">eval_if_c</span></tt></a>, <a class="refentry reference" href="./if.html"><tt class="refentry literal"><span class="pre">if_</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:29 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./eval-if-c.html">eval_if_c</a>, <a class="reference internal" href="./if.html">if_</a></p>
<!-- Metafunctions/Type Selection//eval_if_c |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./if-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./eval-if-c.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./if-c.html" class="navigation-link">Back</a>&nbsp;<a href="./eval-if-c.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./type-selection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -1,81 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Extensible Associative Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./associative-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./integral-sequence-wrapper.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./associative-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./integral-sequence-wrapper.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./extensible-associative.html" class="navigation-link">Extensible Associative Sequence</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./extensible-associative-sequence.html" class="navigation-link">Extensible Associative Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="extensible-associative">
<h1><a class="toc-backref" href="./concepts.html#id331" name="extensible-associative">Extensible Associative Sequence</a></h1>
<div class="section" id="concepts-extensible-description">
<div class="section" id="extensible-associative-sequence">
<h1><a class="toc-backref" href="./concepts.html#id1402">Extensible Associative Sequence</a></h1>
<div class="section" id="id35">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> is an <a class="reference" href="./associative-sequence.html">Associative Sequence</a> that supports
insertion and removal of elements. In contrast to <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>,
<a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> does not provide a mechanism for
<p>An <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> is an <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> that supports
insertion and removal of elements. In contrast to <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>,
<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> does not provide a mechanism for
inserting an element at a specific position.</p>
</div>
<div class="section" id="concepts-extensible-expression-requirements">
<div class="section" id="id36">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">s</span></tt> is an <a class="reference" href="./associative-sequence.html">Associative Sequence</a>,
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">s</span></tt> is an <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>,
<tt class="literal"><span class="pre">pos</span></tt> is an iterator into <tt class="literal"><span class="pre">s</span></tt>, and <tt class="literal"><span class="pre">x</span></tt> and <tt class="literal"><span class="pre">k</span></tt> are arbitrary types.</p>
<p>In addition to the <a class="reference" href="./associative-sequence.html">Associative Sequence</a> requirements, the following must be met:</p>
<table border="1" class="table">
<p>In addition to the <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> requirements, the following must be met:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="32%" />
<col width="40%" />
<col width="28%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,x&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,k&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="concepts-extensible-expression-semantics">
<div class="section" id="id37">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./associative-sequence.html">Associative Sequence</a>.</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="32%" />
<col width="68%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
@@ -85,50 +82,51 @@ equivalent to <tt class="literal"><span class="pre">s</span></tt> except that</p
<pre class="literal-block">
<a href="./at.html" class="identifier">at</a>&lt; r, <a href="./key-type.html" class="identifier">key_type</a>&lt;s,x&gt;::type &gt;::type
</pre>
<p class="last">is identical to <tt class="literal"><span class="pre"><a href="./value-type.html" class="identifier">value_type</a>&lt;s,x&gt;::type</span></tt>; see <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>.</p>
<p class="last">is identical to <tt class="literal"><span class="pre"><a href="./value-type.html" class="identifier">value_type</a>&lt;s,x&gt;::type</span></tt>; see <a class="reference internal" href="./insert.html">insert</a>.</p>
</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type</span></tt></td>
<td>Equivalent to <tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,x&gt;::type</span></tt>; <tt class="literal"><span class="pre">pos</span></tt> is ignored;
see <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>.</td>
see <a class="reference internal" href="./insert.html">insert</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,k&gt;::type</span></tt></td>
<td>Erases elements in <tt class="literal"><span class="pre">s</span></tt> associated with the key <tt class="literal"><span class="pre">k</span></tt>;
the resulting sequence <tt class="literal"><span class="pre">r</span></tt> is equivalent to <tt class="literal"><span class="pre">s</span></tt> except
that <tt class="literal"><span class="pre"><a href="./has-key.html" class="identifier">has_key</a>&lt;r,k&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>; see <a class="refentry reference" href="./erase-key.html"><tt class="refentry literal"><span class="pre">erase_key</span></tt></a>.</td>
that <tt class="literal"><span class="pre"><a href="./has-key.html" class="identifier">has_key</a>&lt;r,k&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>; see <a class="reference internal" href="./erase-key.html">erase_key</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type</span></tt></td>
<td>Erases the element at a specific position; equivalent to
<tt class="literal"><span class="pre"><a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,</span> <span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;pos&gt;::type</span> <span class="pre">&gt;::type</span></tt>; see <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>.</td>
<tt class="literal"><span class="pre"><a href="./erase-key.html" class="identifier">erase_key</a>&lt;s,</span> <span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;pos&gt;::type</span> <span class="pre">&gt;::type</span></tt>; see <a class="reference internal" href="./erase.html">erase</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type</span></tt></td>
<td>An empty sequence concept-identical to <tt class="literal"><span class="pre">s</span></tt>; see
<a class="refentry reference" href="./clear.html"><tt class="refentry literal"><span class="pre">clear</span></tt></a>.</td>
<a class="reference internal" href="./clear.html">clear</a>.</td>
</tr>
</tbody>
</table>
<!-- Invariants
- - - - - - - - - -
For any extensible associative sequence ``s`` the following invariants always hold: -->
For any extensible associative sequence ``s`` the following invariants always hold: -->
</div>
<div class="section" id="concepts-extensible-models">
<div class="section" id="id38">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./set.html"><tt class="refentry literal"><span class="pre">set</span></tt></a></li>
<li><a class="refentry reference" href="./map.html"><tt class="refentry literal"><span class="pre">map</span></tt></a></li>
<li><a class="reference internal" href="./set.html">set</a></li>
<li><a class="reference internal" href="./map.html">map</a></li>
</ul>
<!-- * |multiset| -->
</div>
<div class="section" id="concepts-extensible-see-also">
<div class="section" id="id39">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./associative-sequence.html">Associative Sequence</a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>, <a class="refentry reference" href="./clear.html"><tt class="refentry literal"><span class="pre">clear</span></tt></a></p>
<!-- modtime: November 13, 2004 00:49:10 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>, <a class="reference internal" href="./insert.html">insert</a>, <a class="reference internal" href="./erase.html">erase</a>, <a class="reference internal" href="./clear.html">clear</a></p>
<!-- Sequences/Concepts//Integral Sequence Wrapper |90 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./associative-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./integral-sequence-wrapper.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./associative-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./integral-sequence-wrapper.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+33 -35
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Extensible Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,63 +12,63 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./extensible-sequence.html" class="navigation-link">Extensible Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="extensible-sequence">
<h1><a class="toc-backref" href="./concepts.html#id327" name="extensible-sequence">Extensible Sequence</a></h1>
<div class="section" id="extensible-description">
<h1><a class="toc-backref" href="./concepts.html#id1398">Extensible Sequence</a></h1>
<div class="section" id="id12">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> is a sequence that supports insertion and removal of
<p>An <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> is a sequence that supports insertion and removal of
elements. Extensibility is orthogonal to sequence traversal characteristics.</p>
</div>
<div class="section" id="extensible-expression-requirements">
<div class="section" id="id13">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>For any <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, its iterators <tt class="literal"><span class="pre">pos</span></tt> and <tt class="literal"><span class="pre">last</span></tt>,
<a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">r</span></tt>, and any type <tt class="literal"><span class="pre">x</span></tt>, the following expressions must
<p>For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, its iterators <tt class="literal"><span class="pre">pos</span></tt> and <tt class="literal"><span class="pre">last</span></tt>,
<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">r</span></tt>, and any type <tt class="literal"><span class="pre">x</span></tt>, the following expressions must
be valid:</p>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="39%" />
<col width="30%" />
<col width="30%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Unspecified</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a>&lt;s,pos,r&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Unspecified</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Unspecified</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos,last&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Unspecified</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Constant time</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="extensible-expression-semantics">
<div class="section" id="id14">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="36%" />
<col width="64%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
@@ -79,50 +76,51 @@ be valid:</p>
<td>A new sequence, concept-identical to <tt class="literal"><span class="pre">s</span></tt>, of
the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), <tt class="literal"><span class="pre">x</span></tt>,
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>.</td>
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./insert.html">insert</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a>&lt;s,pos,r&gt;::type</span></tt></td>
<td>A new sequence, concept-identical to <tt class="literal"><span class="pre">s</span></tt>, of
the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;r&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;r&gt;::type</span></tt>),
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="refentry reference" href="./insert-range.html"><tt class="refentry literal"><span class="pre">insert_range</span></tt></a>.</td>
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./insert-range.html">insert_range</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type</span></tt></td>
<td>A new sequence, concept-identical to <tt class="literal"><span class="pre">s</span></tt>, of
the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
[<tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;pos&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>.</td>
[<tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;pos&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./erase.html">erase</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos,last&gt;::type</span></tt></td>
<td>A new sequence, concept-identical to <tt class="literal"><span class="pre">s</span></tt>, of
the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
[<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>.</td>
[<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./erase.html">erase</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type</span></tt></td>
<td>An empty sequence concept-identical to <tt class="literal"><span class="pre">s</span></tt>; see
<a class="refentry reference" href="./clear.html"><tt class="refentry literal"><span class="pre">clear</span></tt></a>.</td>
<a class="reference internal" href="./clear.html">clear</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="extensible-models">
<div class="section" id="id15">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./list.html"><tt class="refentry literal"><span class="pre">list</span></tt></a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./list.html">list</a></li>
</ul>
</div>
<div class="section" id="extensible-see-also">
<div class="section" id="id16">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>, <a class="refentry reference" href="./insert-range.html"><tt class="refentry literal"><span class="pre">insert_range</span></tt></a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a>, <a class="refentry reference" href="./clear.html"><tt class="refentry literal"><span class="pre">clear</span></tt></a></p>
<!-- modtime: November 13, 2004 00:44:12 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a>, <a class="reference internal" href="./insert.html">insert</a>, <a class="reference internal" href="./insert-range.html">insert_range</a>, <a class="reference internal" href="./erase.html">erase</a>, <a class="reference internal" href="./clear.html">clear</a></p>
<!-- Sequences/Concepts//Front Extensible Sequence |50 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./random-access-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./front-extensible-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./random-access-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./front-extensible-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+30 -32
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: filter_view</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./views.html" class="navigation-link">Views</a> / <a href="./filter-view.html" class="navigation-link">filter_view</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="filter-view">
<h1><a class="toc-backref" href="./views.html#id346" name="filter-view">filter_view</a></h1>
<div class="section" id="filter-synopsis">
<h1><a class="toc-backref" href="./views.html#id1418">filter_view</a></h1>
<div class="section" id="id126">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,62 +27,62 @@ struct <a href="./filter-view.html" class="identifier">filter_view</a>
};
</pre>
</div>
<div class="section" id="filter-description">
<div class="section" id="id127">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A view into a subset of <tt class="literal"><span class="pre">Sequence</span></tt>'s elements satisfying the predicate <tt class="literal"><span class="pre">Pred</span></tt>.</p>
</div>
<div class="section" id="filter-header">
<div class="section" id="id128">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/filter_view.hpp" class="header">boost/mpl/filter_view.hpp</a>&gt;
</pre>
</div>
<div class="section" id="filter-model-of">
<div class="section" id="id129">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<ul class="simple">
<li><a class="reference" href="./forward-sequence.html">Forward Sequence</a></li>
<li><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></li>
</ul>
</div>
<div class="section" id="parameters">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<h3>Parameters</h3>
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to wrap.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pred</span></tt></td>
<td>Unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A filtering predicate.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="filter-expression-semantics">
<div class="section" id="id130">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>Semantics of an expression is defined only where it differs from, or is not
defined in <a class="reference" href="./forward-sequence.html">Forward Sequence</a>.</p>
<p>In the following table, <tt class="literal"><span class="pre">v</span></tt> is an instance of <tt class="literal"><span class="pre"><a href="./filter-view.html" class="identifier">filter_view</a></span></tt>, <tt class="literal"><span class="pre">s</span></tt> is an arbitrary
<a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">pred</span></tt> is an unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a>.</p>
<table border="1" class="table">
<p>Semantics of an expression is defined only where it differs from, or is not
defined in <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</p>
<p>In the following table, <tt class="literal"><span class="pre">v</span></tt> is an instance of <tt class="literal"><span class="pre"><a href="./filter-view.html" class="identifier">filter_view</a></span></tt>, <tt class="literal"><span class="pre">s</span></tt> is an arbitrary
<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <tt class="literal"><span class="pre">pred</span></tt> is an unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="40%" />
<col width="60%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
@@ -94,19 +91,19 @@ defined in <a class="reference" href="./forward-sequence.html">Forward Sequence<
<a href="./filter-view.html" class="identifier">filter_view</a>&lt;s,pred&gt;::type
</pre>
</td>
<td>A lazy <a class="reference" href="./forward-sequence.html">Forward Sequence</a> sequence of all the elements in
<td>A lazy <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> sequence of all the elements in
the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>) that satisfy the predicate
<tt class="literal"><span class="pre">pred</span></tt>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;v&gt;::type</span></tt></td>
<td>The size of <tt class="literal"><span class="pre">v</span></tt>;
<tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;v&gt;::value</span> <span class="pre">==</span> <span class="pre"><a href="./count-if.html" class="identifier">count_if</a>&lt;s,pred&gt;::value</span></tt>;
linear complexity; see <a class="reference" href="./forward-sequence.html">Forward Sequence</a>.</td>
linear complexity; see <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="filter-example">
<div class="section" id="id131">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<p>Find the largest floating type in a sequence.</p>
<pre class="literal-block">
@@ -118,15 +115,16 @@ typedef <a href="./max-element.html" class="identifier">max_element</a>&lt;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./deref.html" class="identifier">deref</a>&lt;iter::base&gt;::type, long double > ));
</pre>
</div>
<div class="section" id="filter-see-also">
<div class="section" id="id132">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./views.html">Views</a>, <a class="refentry reference" href="./transform-view.html"><tt class="refentry literal"><span class="pre">transform_view</span></tt></a>, <a class="refentry reference" href="./joint-view.html"><tt class="refentry literal"><span class="pre">joint_view</span></tt></a>, <a class="refentry reference" href="./zip-view.html"><tt class="refentry literal"><span class="pre">zip_view</span></tt></a>, <a class="refentry reference" href="./iterator-range.html"><tt class="refentry literal"><span class="pre">iterator_range</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:12 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./views.html">Views</a>, <a class="reference internal" href="./transform-view.html">transform_view</a>, <a class="reference internal" href="./joint-view.html">joint_view</a>, <a class="reference internal" href="./zip-view.html">zip_view</a>, <a class="reference internal" href="./iterator-range.html">iterator_range</a></p>
<!-- Sequences/Views//iterator_range -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./empty-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./iterator-range.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./empty-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./iterator-range.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./views.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+27 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: find_if</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./find-if.html" class="navigation-link">find_if</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="find-if">
<h1><a class="toc-backref" href="./querying-algorithms.html#id404" name="find-if">find_if</a></h1>
<div class="section" id="querying-find-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1476">find_if</a></h1>
<div class="section" id="id543">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,54 +26,55 @@ struct <a href="./find-if.html" class="identifier">find_if</a>
};
</pre>
</div>
<div class="section" id="querying-find-description">
<div class="section" id="id544">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an iterator to the first element in <tt class="literal"><span class="pre">Sequence</span></tt> that satisfies
<p>Returns an iterator to the first element in <tt class="literal"><span class="pre">Sequence</span></tt> that satisfies
the predicate <tt class="literal"><span class="pre">Pred</span></tt>.</p>
</div>
<div class="section" id="querying-find-header">
<div class="section" id="id545">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/find_if.hpp" class="header">boost/mpl/find_if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="querying-find-parameters">
<div class="section" id="id546">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="38%" />
<col width="43%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to search in.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pred</span></tt></td>
<td>Unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A search condition.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="querying-find-expression-semantics">
<div class="section" id="id547">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and unary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and unary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">pred</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;s,pred&gt;::type i;
typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;s,pred&gt;::type i;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./forward-iterator.html">Forward Iterator</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">i</span></tt> is the first iterator in the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>) such that</p>
<pre class="literal-block">
@@ -88,29 +86,30 @@ typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;s,pred&gt;::t
</tbody>
</table>
</div>
<div class="section" id="querying-find-complexity">
<div class="section" id="id548">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. At most <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">pred</span></tt>.</p>
</div>
<div class="section" id="querying-find-example">
<div class="section" id="id549">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;char,int,unsigned,long,unsigned long&gt; types;
typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;types, is_same&lt;_1,unsigned&gt; &gt;::type iter;
typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;types, is_same&lt;<a href="./placeholders.html" class="identifier">_1</a>,unsigned&gt; &gt;::type iter;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./deref.html" class="identifier">deref</a>&lt;iter&gt;::type, unsigned &gt; ));
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( iter::pos::value, ==, 2 );
</pre>
</div>
<div class="section" id="querying-find-see-also">
<div class="section" id="id550">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./find.html"><tt class="refentry literal"><span class="pre">find</span></tt></a>, <a class="refentry reference" href="./count-if.html"><tt class="refentry literal"><span class="pre">count_if</span></tt></a>, <a class="refentry reference" href="./lower-bound.html"><tt class="refentry literal"><span class="pre">lower_bound</span></tt></a></p>
<!-- modtime: November 10, 2004 04:42:05 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./find.html">find</a>, <a class="reference internal" href="./count-if.html">count_if</a>, <a class="reference internal" href="./lower-bound.html">lower_bound</a></p>
<!-- Algorithms/Querying Algorithms//contains |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./find.html" class="navigation-link">Prev</a>&nbsp;<a href="./contains.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./find.html" class="navigation-link">Back</a>&nbsp;<a href="./contains.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+23 -24
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: find</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./querying-algorithms.html" class="navigation-link">Querying Algorithms</a> / <a href="./find.html" class="navigation-link">find</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="find">
<h1><a class="toc-backref" href="./querying-algorithms.html#id403" name="find">find</a></h1>
<div class="section" id="find-synopsis">
<h1><a class="toc-backref" href="./querying-algorithms.html#id1475">find</a></h1>
<div class="section" id="id535">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,33 +26,33 @@ struct <a href="./find.html" class="identifier">find</a>
};
</pre>
</div>
<div class="section" id="find-description">
<div class="section" id="id536">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an iterator to the first occurrence of type <tt class="literal"><span class="pre">T</span></tt> in a <tt class="literal"><span class="pre">Sequence</span></tt>.</p>
</div>
<div class="section" id="find-header">
<div class="section" id="id537">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/find.hpp" class="header">boost/mpl/find.hpp</a>&gt;
</pre>
</div>
<div class="section" id="find-parameters">
<div class="section" id="id538">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="32%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to search in.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">T</span></tt></td>
@@ -65,17 +62,18 @@ struct <a href="./find.html" class="identifier">find</a>
</tbody>
</table>
</div>
<div class="section" id="find-expression-semantics">
<div class="section" id="id539">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> and arbitrary type <tt class="literal"><span class="pre">t</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./find.html" class="identifier">find</a>&lt;s,t&gt;::type i;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./forward-iterator.html">Forward Iterator</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -86,11 +84,11 @@ typedef <a href="./find-if.html" class="identifier">find_if</a>&lt;s, is_same&lt
</tbody>
</table>
</div>
<div class="section" id="find-complexity">
<div class="section" id="id540">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. At most <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> comparisons for identity.</p>
</div>
<div class="section" id="find-example">
<div class="section" id="id541">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;char,int,unsigned,long,unsigned long&gt; types;
@@ -100,15 +98,16 @@ typedef <a href="./find.html" class="identifier">find</a>&lt;types,unsigned&gt;:
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( iter::pos::value, ==, 2 );
</pre>
</div>
<div class="section" id="find-see-also">
<div class="section" id="id542">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="refentry reference" href="./contains.html"><tt class="refentry literal"><span class="pre">contains</span></tt></a>, <a class="refentry reference" href="./find-if.html"><tt class="refentry literal"><span class="pre">find_if</span></tt></a>, <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>, <a class="refentry reference" href="./lower-bound.html"><tt class="refentry literal"><span class="pre">lower_bound</span></tt></a></p>
<!-- modtime: November 13, 2004 01:50:50 +0000 -->
<p><a class="reference internal" href="./querying-algorithms.html">Querying Algorithms</a>, <a class="reference internal" href="./contains.html">contains</a>, <a class="reference internal" href="./find-if.html">find_if</a>, <a class="reference internal" href="./count.html">count</a>, <a class="reference internal" href="./lower-bound.html">lower_bound</a></p>
<!-- Algorithms/Querying Algorithms//find_if |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./find-if.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./find-if.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./querying-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+33 -30
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: fold</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./iteration-algorithms.html" class="navigation-link">Iteration Algorithms</a> / <a href="./fold.html" class="navigation-link">fold</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="fold">
<h1><a class="toc-backref" href="./iteration-algorithms.html#id397" name="fold">fold</a></h1>
<div class="section" id="fold-synopsis">
<h1><a class="toc-backref" href="./iteration-algorithms.html#id1469">fold</a></h1>
<div class="section" id="id493">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,35 +27,35 @@ struct <a href="./fold.html" class="identifier">fold</a>
};
</pre>
</div>
<div class="section" id="fold-description">
<div class="section" id="id494">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the result of the successive application of binary <tt class="literal"><span class="pre">ForwardOp</span></tt> to the
result of the previous <tt class="literal"><span class="pre">ForwardOp</span></tt> invocation (<tt class="literal"><span class="pre">State</span></tt> if it's the first call)
<p>Returns the result of the successive application of binary <tt class="literal"><span class="pre">ForwardOp</span></tt> to the
result of the previous <tt class="literal"><span class="pre">ForwardOp</span></tt> invocation (<tt class="literal"><span class="pre">State</span></tt> if it's the first call)
and every element of the sequence in the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;Sequence&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;Sequence&gt;::type</span></tt>) in order.</p>
</div>
<div class="section" id="fold-header">
<div class="section" id="id495">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/fold.hpp" class="header">boost/mpl/fold.hpp</a>&gt;
</pre>
</div>
<div class="section" id="fold-parameters">
<div class="section" id="id496">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to iterate.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">State</span></tt></td>
@@ -67,60 +64,66 @@ and every element of the sequence in the range [<tt class="literal"><span class=
application.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">ForwardOp</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>The operation to be executed on forward
traversal.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="fold-expression-semantics">
<div class="section" id="id497">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt>, and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt>, and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./fold.html" class="identifier">fold</a>&lt;s,state,op&gt;::type t;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;s,state,op&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./iter-fold.html" class="identifier">iter_fold</a>&lt; s,state,<a href="./apply.html" class="identifier">apply</a>&lt;op,_1,<a href="./deref.html" class="identifier">deref</a>&lt;_2&gt; &gt; &gt;::type t;
typedef <a href="./iter-fold.html" class="identifier">iter_fold</a>&lt;
s
, state
, apply_wrap2&lt; <a href="./lambda.html" class="identifier">lambda</a>&lt;op&gt;::type, <a href="./placeholders.html" class="identifier">_1</a>, <a href="./deref.html" class="identifier">deref</a>&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt; &gt;
&gt;::type t;
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="fold-complexity">
<div class="section" id="id498">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">op</span></tt>.</p>
</div>
<div class="section" id="fold-example">
<div class="section" id="id499">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector.html" class="identifier">vector</a>&lt;long,float,short,double,float,long,long double&gt; types;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;
types
, <a href="./int.html" class="identifier">int_</a>&lt;0&gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_float&lt;_2&gt;,<a href="./next.html" class="identifier">next</a>&lt;_1&gt;,_1 &gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_float&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt;,<a href="./next.html" class="identifier">next</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;,<a href="./placeholders.html" class="identifier">_1</a> &gt;
&gt;::type number_of_floats;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( number_of_floats::value, ==, 4 );
</pre>
</div>
<div class="section" id="fold-see-also">
<div class="section" id="id500">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="refentry reference" href="./accumulate.html"><tt class="refentry literal"><span class="pre">accumulate</span></tt></a>, <a class="refentry reference" href="./reverse-fold.html"><tt class="refentry literal"><span class="pre">reverse_fold</span></tt></a>, <a class="refentry reference" href="./iter-fold.html"><tt class="refentry literal"><span class="pre">iter_fold</span></tt></a>, <a class="refentry reference" href="./reverse-iter-fold.html"><tt class="refentry literal"><span class="pre">reverse_iter_fold</span></tt></a>, <a class="refentry reference" href="./copy.html"><tt class="refentry literal"><span class="pre">copy</span></tt></a>, <a class="refentry reference" href="./copy-if.html"><tt class="refentry literal"><span class="pre">copy_if</span></tt></a></p>
<!-- modtime: November 10, 2004 04:46:33 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./accumulate.html">accumulate</a>, <a class="reference internal" href="./reverse-fold.html">reverse_fold</a>, <a class="reference internal" href="./iter-fold.html">iter_fold</a>, <a class="reference internal" href="./reverse-iter-fold.html">reverse_iter_fold</a>, <a class="reference internal" href="./copy.html">copy</a>, <a class="reference internal" href="./copy-if.html">copy_if</a></p>
<!-- Algorithms/Iteration Algorithms//iter_fold -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iteration-algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./iter-fold.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./iter-fold.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iteration-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+33 -33
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: for_each</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./runtime-algorithms.html" class="navigation-link">Runtime Algorithms</a> / <a href="./for-each.html" class="navigation-link">for_each</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="for-each">
<h1><a class="toc-backref" href="./runtime-algorithms.html#id437" name="for-each">for_each</a></h1>
<div class="section" id="for-synopsis">
<h1><a class="toc-backref" href="./runtime-algorithms.html#id1509">for_each</a></h1>
<div class="section" id="id812">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -33,7 +30,7 @@ template&lt;
void <a href="./for-each.html" class="identifier">for_each</a>( F f );
</pre>
</div>
<div class="section" id="for-description">
<div class="section" id="id813">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./for-each.html" class="identifier">for_each</a></span></tt> is a family of overloaded function templates:</p>
<ul class="simple">
@@ -44,68 +41,69 @@ object <tt class="literal"><span class="pre">f</span></tt> to the result of the
every element in the [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;Sequence&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;Sequence&gt;::type</span></tt>) range.</li>
</ul>
</div>
<div class="section" id="for-header">
<div class="section" id="id814">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/for_each.hpp" class="header">boost/mpl/for_each.hpp</a>&gt;
</pre>
</div>
<div class="section" id="for-parameters">
<div class="section" id="id815">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="21%" />
<col width="39%" />
<col width="39%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to iterate.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">TransformOp</span></tt></td>
<td><a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td><a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A transformation.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">f</span></tt></td>
<td>An <a class="reference" href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">unary function object</a></td>
<td>An <a class="reference external" href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">unary function object</a></td>
<td>A runtime operation to apply.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="for-expression-semantics">
<div class="section" id="id816">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt> , and an
<a class="reference" href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">unary function object</a> <tt class="literal"><span class="pre">f</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt> , and an
<a class="reference external" href="http://www.sgi.com/tech/stl/UnaryFunction.html" target="_top">unary function object</a> <tt class="literal"><span class="pre">f</span></tt>:</p>
<pre class="literal-block">
<a href="./for-each.html" class="identifier">for_each</a>&lt;s&gt;( f );
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><tt class="literal"><span class="pre">void</span></tt></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">void</span></tt></p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="literal-block">
typedef <a href="./begin.html" class="identifier">begin</a>&lt;Sequence&gt;::type i<sub>1</sub>;
<a class="reference" href="http://www.boost.org/libs/utility/value_init.htm" target="_top"><a href="./value-initialized.html" class="identifier">value_initialized</a></a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>1</sub>&gt;::type &gt; x<sub>1</sub>;
<a class="reference external" href="http://www.boost.org/libs/utility/value_init.htm" target="_top">value_initialized</a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>1</sub>&gt;::type &gt; x<sub>1</sub>;
f(boost::get(x<sub>1</sub>));
typedef <a href="./next.html" class="identifier">next</a>&lt;i<sub>1</sub>&gt;::type i<sub>2</sub>;
<a class="reference" href="http://www.boost.org/libs/utility/value_init.htm" target="_top"><a href="./value-initialized.html" class="identifier">value_initialized</a></a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>2</sub>&gt;::type &gt; x<sub>2</sub>;
<a class="reference external" href="http://www.boost.org/libs/utility/value_init.htm" target="_top">value_initialized</a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>2</sub>&gt;::type &gt; x<sub>2</sub>;
f(boost::get(x<sub>2</sub>));
<em>...</em>
<a class="reference" href="http://www.boost.org/libs/utility/value_init.htm" target="_top"><a href="./value-initialized.html" class="identifier">value_initialized</a></a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>n</sub>&gt;::type &gt; x<sub>n</sub>;
<a class="reference external" href="http://www.boost.org/libs/utility/value_init.htm" target="_top">value_initialized</a>&lt; <a href="./deref.html" class="identifier">deref</a>&lt;i<sub>n</sub>&gt;::type &gt; x<sub>n</sub>;
f(boost::get(x<sub>n</sub>));
typedef <a href="./next.html" class="identifier">next</a>&lt;i<sub>n</sub>&gt;::type last;
typedef <a href="./next.html" class="identifier">next</a>&lt;i<sub>n</sub>&gt;::type last;
</pre>
<p class="last">where <tt class="literal"><span class="pre">n</span> <span class="pre">==</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> and <tt class="literal"><span class="pre">last</span></tt> is identical to
<tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>; no effect if <tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</p>
@@ -116,11 +114,12 @@ typedef <a href="./next.html" class="identifier">next</a>&lt;i<sub>n</sub>&gt;::
<pre class="literal-block">
<a href="./for-each.html" class="identifier">for_each</a>&lt;s,op&gt;( f );
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><tt class="literal"><span class="pre">void</span></tt></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">void</span></tt></p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -131,11 +130,11 @@ typedef <a href="./next.html" class="identifier">next</a>&lt;i<sub>n</sub>&gt;::
</tbody>
</table>
</div>
<div class="section" id="for-complexity">
<div class="section" id="id817">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">op</span></tt> and <tt class="literal"><span class="pre">f</span></tt>.</p>
</div>
<div class="section" id="for-example">
<div class="section" id="id818">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
struct value_printer
@@ -152,14 +151,15 @@ int main()
}
</pre>
</div>
<div class="section" id="for-see-also">
<div class="section" id="id819">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./runtime-algorithms.html">Runtime Algorithms</a>, <a class="reference" href="./views.html">Views</a>, <a class="refentry reference" href="./transform-view.html"><tt class="refentry literal"><span class="pre">transform_view</span></tt></a></p>
<!-- modtime: March 29, 2007 07:29:32 +0000 -->
<p><a class="reference internal" href="./runtime-algorithms.html">Runtime Algorithms</a>, <a class="reference internal" href="./views.html">Views</a>, <a class="reference internal" href="./transform-view.html">transform_view</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./runtime-algorithms.html" class="navigation-link">Prev</a>&nbsp;<a href="./metafunctions.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./runtime-algorithms.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+36 -38
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Forward Iterator</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,48 +12,48 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./iterators.html" class="navigation-link">Iterators</a> / <a href="./iterators-concepts.html" class="navigation-link">Concepts</a> / <a href="./forward-iterator.html" class="navigation-link">Forward Iterator</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="forward-iterator">
<h1><a class="toc-backref" href="./iterators-concepts.html#id378" name="forward-iterator">Forward Iterator</a></h1>
<div class="section" id="forward-description">
<h1><a class="toc-backref" href="./iterators-concepts.html#id1450">Forward Iterator</a></h1>
<div class="section" id="id384">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./forward-iterator.html">Forward Iterator</a> <tt class="literal"><span class="pre">i</span></tt> is a type that represents a positional reference
to an element of a <a class="reference" href="./forward-sequence.html">Forward Sequence</a>. It allows to access the element through
a dereference operation, and provides a way to obtain an iterator to
<p>A <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a> <tt class="literal"><span class="pre">i</span></tt> is a type that represents a positional reference
to an element of a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>. It allows to access the element through
a dereference operation, and provides a way to obtain an iterator to
the next element in a sequence.</p>
<!-- A [Forward Iterator] guarantees a linear traversal over
<!-- A [Forward Iterator] guarantees a linear traversal over
the sequence. -->
</div>
<div class="section" id="forward-definitions">
<div class="section" id="id385">
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
<ul class="simple">
<li>An iterator can be <cite>dereferenceable</cite>, meaning that <tt class="literal"><span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type</span></tt>
is a well-defined expression.</li>
<li>An iterator is <cite>past-the-end</cite> if it points beyond the last element of a
<li>An iterator is <cite>past-the-end</cite> if it points beyond the last element of a
sequence; past-the-end iterators are non-dereferenceable.</li>
<li>An iterator <tt class="literal"><span class="pre">i</span></tt> is <cite>incrementable</cite> if there is a &quot;next&quot; iterator, that
is, if <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt> expression is well-defined; past-the-end iterators are
<li>An iterator <tt class="literal"><span class="pre">i</span></tt> is <cite>incrementable</cite> if there is a &quot;next&quot; iterator, that
is, if <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt> expression is well-defined; past-the-end iterators are
not incrementable.</li>
<li>Two iterators into the same sequence are <cite>equivalent</cite> if they have the same
type.</li>
<li>An iterator <tt class="literal"><span class="pre">j</span></tt> is <cite>reachable</cite> from an iterator <tt class="literal"><span class="pre">i</span></tt> if , after recursive
application of <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a></span></tt> metafunction to <tt class="literal"><span class="pre">i</span></tt> a finite number of times, <tt class="literal"><span class="pre">i</span></tt>
<li>An iterator <tt class="literal"><span class="pre">j</span></tt> is <cite>reachable</cite> from an iterator <tt class="literal"><span class="pre">i</span></tt> if , after recursive
application of <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a></span></tt> metafunction to <tt class="literal"><span class="pre">i</span></tt> a finite number of times, <tt class="literal"><span class="pre">i</span></tt>
is equivalent to <tt class="literal"><span class="pre">j</span></tt>.</li>
<li>The notation [<tt class="literal"><span class="pre">i</span></tt>,<tt class="literal"><span class="pre">j</span></tt>) refers to a <cite>range</cite> of iterators beginning with
<li>The notation [<tt class="literal"><span class="pre">i</span></tt>,<tt class="literal"><span class="pre">j</span></tt>) refers to a <cite>range</cite> of iterators beginning with
<tt class="literal"><span class="pre">i</span></tt> and up to but not including <tt class="literal"><span class="pre">j</span></tt>.</li>
<li>The range [<tt class="literal"><span class="pre">i</span></tt>,<tt class="literal"><span class="pre">j</span></tt>) is a <cite>valid range</cite> if <tt class="literal"><span class="pre">j</span></tt> is reachable from <tt class="literal"><span class="pre">i</span></tt>.</li>
</ul>
</div>
<div class="section" id="forward-expression-requirements">
<div class="section" id="id386">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="25%" />
<col width="46%" />
<col width="29%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
@@ -65,23 +62,23 @@ is equivalent to <tt class="literal"><span class="pre">j</span></tt>.</li>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre">i::category</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a>, convertible
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a>, convertible
to <tt class="literal"><span class="pre">forward_iterator_tag</span></tt></td>
<td>Constant time</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="forward-expression-semantics">
<div class="section" id="id387">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<pre class="literal-block">
typedef <a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type j;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -95,7 +92,7 @@ typedef <a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type j;
<pre class="literal-block">
typedef <a href="./next.html" class="identifier">next</a>&lt;i&gt;::type j;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -111,7 +108,7 @@ typedef <a href="./next.html" class="identifier">next</a>&lt;i&gt;::type j;
<pre class="literal-block">
typedef i::category c;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -120,31 +117,32 @@ typedef i::category c;
</tbody>
</table>
</div>
<div class="section" id="forward-invariants">
<div class="section" id="id388">
<h3><a class="subsection-title" href="#invariants" name="invariants">Invariants</a></h3>
<p>For any forward iterators <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> the following invariants always hold:</p>
<ul class="simple">
<li><tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent if and only if they are pointing to the same
<li><tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent if and only if they are pointing to the same
element.</li>
<li>If <tt class="literal"><span class="pre">i</span></tt> is dereferenceable, and <tt class="literal"><span class="pre">j</span></tt> is equivalent to <tt class="literal"><span class="pre">i</span></tt>, then <tt class="literal"><span class="pre">j</span></tt> is
<li>If <tt class="literal"><span class="pre">i</span></tt> is dereferenceable, and <tt class="literal"><span class="pre">j</span></tt> is equivalent to <tt class="literal"><span class="pre">i</span></tt>, then <tt class="literal"><span class="pre">j</span></tt> is
dereferenceable as well.</li>
<li>If <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent and dereferenceable, then <tt class="literal"><span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type</span></tt>
<li>If <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent and dereferenceable, then <tt class="literal"><span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;i&gt;::type</span></tt>
and <tt class="literal"><span class="pre"><a href="./deref.html" class="identifier">deref</a>&lt;j&gt;::type</span></tt> are identical.</li>
<li>If <tt class="literal"><span class="pre">i</span></tt> is incrementable, and <tt class="literal"><span class="pre">j</span></tt> is equivalent to <tt class="literal"><span class="pre">i</span></tt>, then <tt class="literal"><span class="pre">j</span></tt> is
<li>If <tt class="literal"><span class="pre">i</span></tt> is incrementable, and <tt class="literal"><span class="pre">j</span></tt> is equivalent to <tt class="literal"><span class="pre">i</span></tt>, then <tt class="literal"><span class="pre">j</span></tt> is
incrementable as well.</li>
<li>If <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent and incrementable, then <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt>
<li>If <tt class="literal"><span class="pre">i</span></tt> and <tt class="literal"><span class="pre">j</span></tt> are equivalent and incrementable, then <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;i&gt;::type</span></tt>
and <tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;j&gt;::type</span></tt> are equivalent.</li>
</ul>
</div>
<div class="section" id="forward-see-also">
<div class="section" id="id389">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./iterators.html">Iterators</a>, <a class="reference" href="./bidirectional-iterator.html">Bidirectional Iterator</a>, <a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="refentry reference" href="./deref.html"><tt class="refentry literal"><span class="pre">deref</span></tt></a>, <a class="refentry reference" href="./next.html"><tt class="refentry literal"><span class="pre">next</span></tt></a></p>
<!-- modtime: November 13, 2004 01:34:24 +0000 -->
<p><a class="reference internal" href="./iterators.html">Iterators</a>, <a class="reference internal" href="./bidirectional-iterator.html">Bidirectional Iterator</a>, <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./deref.html">deref</a>, <a class="reference internal" href="./next.html">next</a></p>
<!-- Iterators/Concepts//Bidirectional Iterator |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./iterators-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./bidirectional-iterator.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./bidirectional-iterator.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./iterators-concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+45 -47
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Forward Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,54 +12,54 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./forward-sequence.html" class="navigation-link">Forward Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="forward-sequence">
<h1><a class="toc-backref" href="./concepts.html#id324" name="forward-sequence">Forward Sequence</a></h1>
<h1><a class="toc-backref" href="./concepts.html#id1395">Forward Sequence</a></h1>
<div class="section" id="description">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./forward-sequence.html">Forward Sequence</a> is an MPL concept representing a compile-time sequence of
elements. Sequence elements are
types, and are accessible through <a class="reference" href="./iterators.html">Iterators</a>. The <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a> and <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a> metafunctions
provide iterators delimiting the range of the sequence
elements. A sequence guarantees that its elements are arranged in a definite,
but possibly unspecified, order. Every MPL sequence is a <a class="reference" href="./forward-sequence.html">Forward Sequence</a>.</p>
<h3>Description</h3>
<p>A <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> is an MPL concept representing a compile-time sequence of
elements. Sequence elements are
types, and are accessible through <a class="reference internal" href="./iterators.html">Iterators</a>. The <a class="reference internal" href="./begin.html">begin</a> and <a class="reference internal" href="./end.html">end</a> metafunctions
provide iterators delimiting the range of the sequence
elements. A sequence guarantees that its elements are arranged in a definite,
but possibly unspecified, order. Every MPL sequence is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</p>
</div>
<div class="section" id="definitions">
<h3><a class="subsection-title" href="#definitions" name="definitions">Definitions</a></h3>
<h3>Definitions</h3>
<ul class="simple">
<li>The <em>size</em> of a sequence is the number of elements it contains. The size is a
<li>The <em>size</em> of a sequence is the number of elements it contains. The size is a
nonnegative number.</li>
<li>A sequence is <em>empty</em> if its size is zero.</li>
</ul>
</div>
<div class="section" id="expression-requirements">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following expressions must be valid:</p>
<table border="1" class="table">
<h3>Expression requirements</h3>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following expressions must be valid:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="30%" />
<col width="39%" />
<col width="30%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Unspecified</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type</span></tt></td>
<td>Boolean <a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td>Boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a>&lt;s&gt;::type</span></tt></td>
@@ -73,67 +70,68 @@ nonnegative number.</li>
</table>
</div>
<div class="section" id="expression-semantics">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<table border="1" class="table">
<h3>Expression semantics</h3>
<table border="1" class="docutils table">
<colgroup>
<col width="28%" />
<col width="72%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt></td>
<td>An iterator to the first element of the sequence; see <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a>.</td>
<td>An iterator to the first element of the sequence; see <a class="reference internal" href="./begin.html">begin</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt></td>
<td>A past-the-end iterator to the sequence; see <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>.</td>
<td>A past-the-end iterator to the sequence; see <a class="reference internal" href="./end.html">end</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::type</span></tt></td>
<td>The size of the sequence; see <a class="refentry reference" href="./size.html"><tt class="refentry literal"><span class="pre">size</span></tt></a>.</td>
<td>The size of the sequence; see <a class="reference internal" href="./size.html">size</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type</span></tt></td>
<td>A boolean <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that
<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if the sequence is empty; see <a class="refentry reference" href="./empty.html"><tt class="refentry literal"><span class="pre">empty</span></tt></a>.</td>
<td>A boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that
<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if the sequence is empty; see <a class="reference internal" href="./empty.html">empty</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a>&lt;s&gt;::type</span></tt></td>
<td>The first element in the sequence; see <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a>.</td>
<td>The first element in the sequence; see <a class="reference internal" href="./front.html">front</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="invariants">
<h3><a class="subsection-title" href="#invariants" name="invariants">Invariants</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following invariants always hold:</p>
<h3>Invariants</h3>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following invariants always hold:</p>
<ul class="simple">
<li>[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>) is always a valid range.</li>
<li>An algorithm that iterates through the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>)
<li>An algorithm that iterates through the range [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>)
will pass through every element of <tt class="literal"><span class="pre">s</span></tt> exactly once.</li>
<li><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt> is identical to <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt> if and only if <tt class="literal"><span class="pre">s</span></tt> is empty.</li>
<li>Two different iterations through <tt class="literal"><span class="pre">s</span></tt> will access its elements in the same order.</li>
</ul>
</div>
<div class="section" id="models">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<h3>Models</h3>
<ul class="simple">
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./map.html"><tt class="refentry literal"><span class="pre">map</span></tt></a></li>
<li><a class="refentry reference" href="./range-c.html"><tt class="refentry literal"><span class="pre">range_c</span></tt></a></li>
<li><a class="refentry reference" href="./iterator-range.html"><tt class="refentry literal"><span class="pre">iterator_range</span></tt></a></li>
<li><a class="refentry reference" href="./filter-view.html"><tt class="refentry literal"><span class="pre">filter_view</span></tt></a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./map.html">map</a></li>
<li><a class="reference internal" href="./range-c.html">range_c</a></li>
<li><a class="reference internal" href="./iterator-range.html">iterator_range</a></li>
<li><a class="reference internal" href="./filter-view.html">filter_view</a></li>
</ul>
</div>
<div class="section" id="see-also">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="reference" href="./forward-iterator.html">Forward Iterator</a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a> / <a class="refentry reference" href="./end.html"><tt class="refentry literal"><span class="pre">end</span></tt></a>, <a class="refentry reference" href="./size.html"><tt class="refentry literal"><span class="pre">size</span></tt></a>, <a class="refentry reference" href="./empty.html"><tt class="refentry literal"><span class="pre">empty</span></tt></a>, <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a></p>
<!-- modtime: November 13, 2004 00:38:50 +0000 -->
<h3>See also</h3>
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="reference internal" href="./forward-iterator.html">Forward Iterator</a>, <a class="reference internal" href="./begin.html">begin</a> / <a class="reference internal" href="./end.html">end</a>, <a class="reference internal" href="./size.html">size</a>, <a class="reference internal" href="./empty.html">empty</a>, <a class="reference internal" href="./front.html">front</a></p>
<!-- Sequences/Concepts//Bidirectional Sequence |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./bidirectional-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./bidirectional-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+31 -33
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Front Extensible Sequence</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,39 +12,39 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./concepts.html" class="navigation-link">Concepts</a> / <a href="./front-extensible-sequence.html" class="navigation-link">Front Extensible Sequence</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="front-extensible-sequence">
<h1><a class="toc-backref" href="./concepts.html#id328" name="front-extensible-sequence">Front Extensible Sequence</a></h1>
<div class="section" id="front-description">
<h1><a class="toc-backref" href="./concepts.html#id1399">Front Extensible Sequence</a></h1>
<div class="section" id="id17">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A <a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a> is an <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> that supports amortized constant
<p>A <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a> is an <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> that supports amortized constant
time insertion and removal operations at the beginning.</p>
</div>
<div class="section" id="front-refinement-of">
<div class="section" id="id18">
<h3><a class="subsection-title" href="#refinement-of" name="refinement-of">Refinement of</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></p>
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></p>
</div>
<div class="section" id="front-expression-requirements">
<div class="section" id="id19">
<h3><a class="subsection-title" href="#expression-requirements" name="expression-requirements">Expression requirements</a></h3>
<p>In addition to the requirements defined in <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>,
for any <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="table">
<p>In addition to the requirements defined in <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>,
for any <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt> the following must be met:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="35%" />
<col width="35%" />
<col width="30%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<th>Complexity</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./push-front.html" class="identifier">push_front</a>&lt;s,x&gt;::type</span></tt></td>
<td><a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./pop-front.html" class="identifier">pop_front</a>&lt;s&gt;::type</span></tt></td>
<td><a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td>Amortized constant time</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a>&lt;s&gt;::type</span></tt></td>
@@ -57,51 +54,52 @@ for any <a class="reference" href="./back-extensible-sequence.html">Back Extensi
</tbody>
</table>
</div>
<div class="section" id="front-expression-semantics">
<div class="section" id="id20">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="34%" />
<col width="66%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./push-front.html" class="identifier">push_front</a>&lt;s,x&gt;::type</span></tt></td>
<td>Equivalent to <tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,<a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type,x&gt;::type</span></tt>;
see <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a>.</td>
see <a class="reference internal" href="./push-front.html">push_front</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./pop-front.html" class="identifier">pop_front</a>&lt;v&gt;::type</span></tt></td>
<td>Equivalent to <tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,<a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type&gt;::type</span></tt>;
see <a class="refentry reference" href="./pop-front.html"><tt class="refentry literal"><span class="pre">pop_front</span></tt></a>.</td>
see <a class="reference internal" href="./pop-front.html">pop_front</a>.</td>
</tr>
<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a>&lt;s&gt;::type</span></tt></td>
<td>The first element in the sequence; see <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a>.</td>
<td>The first element in the sequence; see <a class="reference internal" href="./front.html">front</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="front-models">
<div class="section" id="id21">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./vector.html"><tt class="refentry literal"><span class="pre">vector</span></tt></a></li>
<li><a class="refentry reference" href="./list.html"><tt class="refentry literal"><span class="pre">list</span></tt></a></li>
<li><a class="reference internal" href="./vector.html">vector</a></li>
<li><a class="reference internal" href="./list.html">list</a></li>
</ul>
</div>
<div class="section" id="front-see-also">
<div class="section" id="id22">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./sequences.html">Sequences</a>, <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference" href="./back-extensible-sequence.html">Back Extensible Sequence</a>, <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a>, <a class="refentry reference" href="./pop-front.html"><tt class="refentry literal"><span class="pre">pop_front</span></tt></a>, <a class="refentry reference" href="./front.html"><tt class="refentry literal"><span class="pre">front</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:54 +0000 -->
<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a>, <a class="reference internal" href="./push-front.html">push_front</a>, <a class="reference internal" href="./pop-front.html">pop_front</a>, <a class="reference internal" href="./front.html">front</a></p>
<!-- Sequences/Concepts//Back Extensible Sequence |60 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./extensible-sequence.html" class="navigation-link">Prev</a>&nbsp;<a href="./back-extensible-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./extensible-sequence.html" class="navigation-link">Back</a>&nbsp;<a href="./back-extensible-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+31 -33
View File
@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: front_inserter</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserters-inserter.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Back</a>&nbsp;<a href="./inserters-inserter.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserter-class.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Back</a>&nbsp;<a href="./inserter-class.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./inserters.html" class="navigation-link">Inserters</a> / <a href="./front-inserter.html" class="navigation-link">front_inserter</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="front-inserter">
<h1><a class="toc-backref" href="./inserters.html#id394" name="front-inserter">front_inserter</a></h1>
<div class="section" id="inserters-front-synopsis">
<h1><a class="toc-backref" href="./inserters.html#id1466">front_inserter</a></h1>
<div class="section" id="id474">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,92 +26,93 @@ struct <a href="./front-inserter.html" class="identifier">front_inserter</a>
};
</pre>
</div>
<div class="section" id="inserters-front-description">
<div class="section" id="id475">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Inserts elements at the beginning of the sequence.</p>
</div>
<div class="section" id="inserters-front-header">
<div class="section" id="id476">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/front_inserter.hpp" class="header">boost/mpl/front_inserter.hpp</a>&gt;
</pre>
</div>
<div class="section" id="inserters-front-model-of">
<div class="section" id="id477">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./inserter.html">Inserter</a></p>
<p><a class="reference internal" href="./inserter.html">Inserter</a></p>
</div>
<div class="section" id="inserters-front-parameters">
<div class="section" id="id478">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="18%" />
<col width="36%" />
<col width="46%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Seq</span></tt></td>
<td><a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></td>
<td>A sequence to bind the inserter to.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-front-expression-semantics">
<div class="section" id="id479">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./inserter.html">Inserter</a>.</p>
<p>For any <a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./inserter.html">Inserter</a>.</p>
<p>For any <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="33%" />
<col width="67%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./front-inserter.html" class="identifier">front_inserter</a>&lt;s&gt;</span></tt></td>
<td><p class="first">An <a class="reference" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>, equivalent to</p>
<td><p class="first">An <a class="reference internal" href="./inserter.html">Inserter</a> <tt class="literal"><span class="pre">in</span></tt>, equivalent to</p>
<pre class="last literal-block">
struct in : <a href="./inserter.html" class="identifier">inserter</a>&lt;s,<a href="./push-front.html" class="identifier">push_front</a>&lt;_1,_2&gt; > {};
struct in : <a href="./inserter-class.html" class="identifier">inserter</a>&lt;s,<a href="./push-front.html" class="identifier">push_front</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt; > {};
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-front-complexity">
<div class="section" id="id480">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="inserters-front-example">
<div class="section" id="id481">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./reverse-copy.html" class="identifier">reverse_copy</a>&lt;
<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,5&gt;
, <a href="./front-inserter.html" class="identifier">front_inserter</a>&lt; <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,5,6,7,8,9&gt; &gt;
&gt;::type range;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt; range, <a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt; > ));
</pre>
</div>
<div class="section" id="inserters-front-see-also">
<div class="section" id="id482">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="reference" href="./inserter.html">Inserter</a>, <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="refentry reference" href="./inserters-inserter.html"><tt class="refentry literal"><span class="pre">inserter</span></tt></a>, <a class="refentry reference" href="./back-inserter.html"><tt class="refentry literal"><span class="pre">back_inserter</span></tt></a>, <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:57 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./inserter.html">Inserter</a>, <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="reference internal" href="./inserter-class.html">inserter (class)</a>, <a class="reference internal" href="./back-inserter.html">back_inserter</a>, <a class="reference internal" href="./push-front.html">push_front</a></p>
<!-- Algorithms/Inserters//inserter -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserters-inserter.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Back</a>&nbsp;<a href="./inserters-inserter.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./inserter-class.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./back-inserter.html" class="navigation-link">Back</a>&nbsp;<a href="./inserter-class.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+28 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: front</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./front.html" class="navigation-link">front</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="front">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id362" name="front">front</a></h1>
<div class="section" id="front-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1434">front</a></h1>
<div class="section" id="id256">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -28,55 +25,57 @@ struct <a href="./front.html" class="identifier">front</a>
};
</pre>
</div>
<div class="section" id="intrinsic-front-description">
<div class="section" id="id257">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns the first element in the sequence.</p>
</div>
<div class="section" id="front-header">
<div class="section" id="id258">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/front.hpp" class="header">boost/mpl/front.hpp</a>&gt;
</pre>
</div>
<div class="section" id="front-model-of">
<div class="section" id="id259">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="front-parameters">
<div class="section" id="id260">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="18%" />
<col width="27%" />
<col width="55%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>A sequence to be examined.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-front-expression-semantics">
<div class="section" id="id261">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">s</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./front.html" class="identifier">front</a>&lt;s&gt;::type t;
typedef <a href="./front.html" class="identifier">front</a>&lt;s&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -87,11 +86,11 @@ typedef <a href="./deref.html" class="identifier">deref</a>&lt; <a href="./begin
</tbody>
</table>
</div>
<div class="section" id="front-complexity">
<div class="section" id="id262">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="front-example">
<div class="section" id="id263">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./list.html" class="identifier">list</a>&lt;long&gt;::type types1;
@@ -103,15 +102,16 @@ typedef <a href="./list.html" class="identifier">list</a>&lt;char,int,long&gt;::
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./front.html" class="identifier">front</a>&lt;types3&gt;::type, char&gt; ));
</pre>
</div>
<div class="section" id="intrinsic-front-see-also">
<div class="section" id="id264">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./forward-sequence.html">Forward Sequence</a>, <a class="refentry reference" href="./back.html"><tt class="refentry literal"><span class="pre">back</span></tt></a>, <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a>, <a class="refentry reference" href="./begin.html"><tt class="refentry literal"><span class="pre">begin</span></tt></a>, <a class="refentry reference" href="./deref.html"><tt class="refentry literal"><span class="pre">deref</span></tt></a>, <a class="refentry reference" href="./at.html"><tt class="refentry literal"><span class="pre">at</span></tt></a></p>
<!-- modtime: November 13, 2004 01:27:55 +0000 -->
<p><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./back.html">back</a>, <a class="reference internal" href="./push-front.html">push_front</a>, <a class="reference internal" href="./begin.html">begin</a>, <a class="reference internal" href="./deref.html">deref</a>, <a class="reference internal" href="./at.html">at</a></p>
<!-- Sequences/Intrinsic Metafunctions//has_key -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./erase-key.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-key.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./erase-key.html" class="navigation-link">Back</a>&nbsp;<a href="./has-key.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: greater_equal</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./comparisons.html" class="navigation-link">Comparisons</a> / <a href="./greater-equal.html" class="navigation-link">greater_equal</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="greater-equal">
<h1><a class="toc-backref" href="./comparisons.html#id472" name="greater-equal">greater_equal</a></h1>
<div class="section" id="comparisons-greater-synopsis">
<h1><a class="toc-backref" href="./comparisons.html#id1546">greater_equal</a></h1>
<div class="section" id="id1041">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,58 +26,59 @@ struct <a href="./greater-equal.html" class="identifier">greater_equal</a>
};
</pre>
</div>
<div class="section" id="comparisons-greater-description">
<div class="section" id="id1042">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> is greater than or equal to <tt class="literal"><span class="pre">T2</span></tt>.</p>
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> is greater than or equal to <tt class="literal"><span class="pre">T2</span></tt>.</p>
</div>
<div class="section" id="comparisons-greater-header">
<div class="section" id="id1043">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/greater_equal.hpp" class="header">boost/mpl/greater_equal.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/comparison.hpp" class="header">boost/mpl/comparison.hpp</a>&gt;
</pre>
</div>
<div class="section" id="comparisons-greater-model-of">
<div class="section" id="id1044">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="comparisons-greater-parameters">
<div class="section" id="id1045">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="comparisons-greater-expression-semantics">
<div class="section" id="id1046">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt;c1,c2&gt;::type r;
typedef <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt;c1,c2&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -92,13 +90,14 @@ typedef <a href="./bool.html" class="identifier">bool_</a>&lt; (c1::value &lt; c
</table>
<!-- .......................................................................... -->
<pre class="literal-block">
typedef <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt;c1,c2&gt; r;
typedef <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt;c1,c2&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -109,11 +108,11 @@ struct r : <a href="./greater-equal.html" class="identifier">greater_equal</a>&l
</tbody>
</table>
</div>
<div class="section" id="comparisons-greater-complexity">
<div class="section" id="id1047">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="comparisons-greater-example">
<div class="section" id="id1048">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt; <a href="./int.html" class="identifier">int_</a>&lt;10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;0&gt; &gt; ));
@@ -121,15 +120,16 @@ struct r : <a href="./greater-equal.html" class="identifier">greater_equal</a>&l
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./greater-equal.html" class="identifier">greater_equal</a>&lt; <a href="./long.html" class="identifier">long_</a>&lt;10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;10&gt; > ));
</pre>
</div>
<div class="section" id="comparisons-greater-see-also">
<div class="section" id="id1049">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./comparisons.html">Comparisons</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./greater.html"><tt class="refentry literal"><span class="pre">greater</span></tt></a>, <a class="refentry reference" href="./less.html"><tt class="refentry literal"><span class="pre">less</span></tt></a>, <a class="refentry reference" href="./equal-to.html"><tt class="refentry literal"><span class="pre">equal_to</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:45 +0000 -->
<p><a class="reference internal" href="./comparisons.html">Comparisons</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./greater.html">greater</a>, <a class="reference internal" href="./less.html">less</a>, <a class="reference internal" href="./equal-to.html">equal_to</a></p>
<!-- Metafunctions/Comparisons//equal_to |50 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./greater.html" class="navigation-link">Prev</a>&nbsp;<a href="./equal-to.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./greater.html" class="navigation-link">Back</a>&nbsp;<a href="./equal-to.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./comparisons.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+34 -34
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: greater</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./comparisons.html" class="navigation-link">Comparisons</a> / <a href="./greater.html" class="navigation-link">greater</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="greater">
<h1><a class="toc-backref" href="./comparisons.html#id471" name="greater">greater</a></h1>
<div class="section" id="greater-synopsis">
<h1><a class="toc-backref" href="./comparisons.html#id1545">greater</a></h1>
<div class="section" id="id1032">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,58 +26,59 @@ struct <a href="./greater.html" class="identifier">greater</a>
};
</pre>
</div>
<div class="section" id="greater-description">
<div class="section" id="id1033">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> is greater than <tt class="literal"><span class="pre">T2</span></tt>.</p>
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">T1</span></tt> is greater than <tt class="literal"><span class="pre">T2</span></tt>.</p>
</div>
<div class="section" id="greater-header">
<div class="section" id="id1034">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/greater.hpp" class="header">boost/mpl/greater.hpp</a>&gt;
#include &lt;<a href="../../../../boost/mpl/comparison.hpp" class="header">boost/mpl/comparison.hpp</a>&gt;
</pre>
</div>
<div class="section" id="greater-model-of">
<div class="section" id="id1035">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
<p><a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a></p>
</div>
<div class="section" id="greater-parameters">
<div class="section" id="id1036">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>Operation's arguments.</td>
</tr>
</tbody>
</table>
<p>[<em>Note:</em> The requirements listed in this specification
are the ones imposed by the default implementation. See <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
are the ones imposed by the default implementation. See <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a> concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the <a class="reference internal" href="./integral-constant.html">Integral Constant</a> requirements. — <em>end note</em>]</p>
</div>
<div class="section" id="greater-expression-semantics">
<div class="section" id="id1037">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s <tt class="literal"><span class="pre">c1</span></tt> and <tt class="literal"><span class="pre">c2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt;::type r;
typedef <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -92,13 +90,14 @@ typedef <a href="./bool.html" class="identifier">bool_</a>&lt; (c1::value &lt; c
</table>
<!-- .......................................................................... -->
<pre class="literal-block">
typedef <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt; r;
typedef <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt; r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -109,11 +108,11 @@ struct r : <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt;:
</tbody>
</table>
</div>
<div class="section" id="greater-complexity">
<div class="section" id="id1038">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="greater-example">
<div class="section" id="id1039">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./greater.html" class="identifier">greater</a>&lt; <a href="./int.html" class="identifier">int_</a>&lt;10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;0&gt; &gt; ));
@@ -121,15 +120,16 @@ struct r : <a href="./greater.html" class="identifier">greater</a>&lt;c1,c2&gt;:
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./greater.html" class="identifier">greater</a>&lt; <a href="./long.html" class="identifier">long_</a>&lt;10&gt;, <a href="./int.html" class="identifier">int_</a>&lt;10&gt; > ));
</pre>
</div>
<div class="section" id="greater-see-also">
<div class="section" id="id1040">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./comparisons.html">Comparisons</a>, <a class="reference" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="refentry reference" href="./numeric-cast.html"><tt class="refentry literal"><span class="pre">numeric_cast</span></tt></a>, <a class="refentry reference" href="./greater-equal.html"><tt class="refentry literal"><span class="pre">greater_equal</span></tt></a>, <a class="refentry reference" href="./less.html"><tt class="refentry literal"><span class="pre">less</span></tt></a>, <a class="refentry reference" href="./equal-to.html"><tt class="refentry literal"><span class="pre">equal_to</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:49 +0000 -->
<p><a class="reference internal" href="./comparisons.html">Comparisons</a>, <a class="reference internal" href="./numeric-metafunction.html">Numeric Metafunction</a>, <a class="reference internal" href="./numeric-cast.html">numeric_cast</a>, <a class="reference internal" href="./greater-equal.html">greater_equal</a>, <a class="reference internal" href="./less.html">less</a>, <a class="reference internal" href="./equal-to.html">equal_to</a></p>
<!-- Metafunctions/Comparisons//greater_equal |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./less-equal.html" class="navigation-link">Prev</a>&nbsp;<a href="./greater-equal.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./less-equal.html" class="navigation-link">Back</a>&nbsp;<a href="./greater-equal.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./comparisons.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+26 -28
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: has_key</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./has-key.html" class="navigation-link">has_key</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="has-key">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id363" name="has-key">has_key</a></h1>
<div class="section" id="has-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1435">has_key</a></h1>
<div class="section" id="id265">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -29,38 +26,38 @@ struct <a href="./has-key.html" class="identifier">has_key</a>
};
</pre>
</div>
<div class="section" id="has-description">
<div class="section" id="id266">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns a true-valued <a class="reference" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">Sequence</span></tt> contains an element
<p>Returns a true-valued <a class="reference internal" href="./integral-constant.html">Integral Constant</a> if <tt class="literal"><span class="pre">Sequence</span></tt> contains an element
with key <tt class="literal"><span class="pre">Key</span></tt>.</p>
</div>
<div class="section" id="has-header">
<div class="section" id="id267">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/has_key.hpp" class="header">boost/mpl/has_key.hpp</a>&gt;
</pre>
</div>
<div class="section" id="has-model-of">
<div class="section" id="id268">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="has-parameters">
<div class="section" id="id269">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="17%" />
<col width="30%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./associative-sequence.html">Associative Sequence</a></td>
<td><a class="reference internal" href="./associative-sequence.html">Associative Sequence</a></td>
<td>A sequence to query.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Key</span></tt></td>
@@ -70,17 +67,17 @@ with key <tt class="literal"><span class="pre">Key</span></tt>.</p>
</tbody>
</table>
</div>
<div class="section" id="has-expression-semantics">
<div class="section" id="id270">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">key</span></tt>:</p>
<p>For any <a class="reference internal" href="./associative-sequence.html">Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">key</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./has-key.html" class="identifier">has_key</a>&lt;s,key&gt;::type c;
typedef <a href="./has-key.html" class="identifier">has_key</a>&lt;s,key&gt;::type c;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Boolean <a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if <tt class="literal"><span class="pre">key</span></tt> is in <tt class="literal"><span class="pre">s</span></tt>'s set of keys; otherwise
<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">false</span></tt>.</td>
@@ -88,11 +85,11 @@ typedef <a href="./has-key.html" class="identifier">has_key</a>&lt;s,key&gt;::ty
</tbody>
</table>
</div>
<div class="section" id="has-complexity">
<div class="section" id="id271">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="has-example">
<div class="section" id="id272">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./map.html" class="identifier">map</a>&lt; <a href="./pair.html" class="identifier">pair</a>&lt;int,unsigned&gt;, <a href="./pair.html" class="identifier">pair</a>&lt;char,long&gt; &gt; m;
@@ -102,15 +99,16 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt; m, <a href="./
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./has-key.html" class="identifier">has_key</a>&lt;m1,long&gt; ));
</pre>
</div>
<div class="section" id="has-see-also">
<div class="section" id="id273">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./associative-sequence.html">Associative Sequence</a>, <a class="refentry reference" href="./count.html"><tt class="refentry literal"><span class="pre">count</span></tt></a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>, <a class="refentry reference" href="./erase-key.html"><tt class="refentry literal"><span class="pre">erase_key</span></tt></a></p>
<!-- modtime: November 13, 2004 01:28:31 +0000 -->
<p><a class="reference internal" href="./associative-sequence.html">Associative Sequence</a>, <a class="reference internal" href="./count.html">count</a>, <a class="reference internal" href="./insert.html">insert</a>, <a class="reference internal" href="./erase-key.html">erase_key</a></p>
<!-- Sequences/Intrinsic Metafunctions//insert -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./front.html" class="navigation-link">Prev</a>&nbsp;<a href="./insert.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./front.html" class="navigation-link">Back</a>&nbsp;<a href="./insert.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+139
View File
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_HAS_XXX_TEMPLATE_DEF</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-template-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./has-xxx-template-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./introspection.html" class="navigation-link">Introspection</a> / <a href="./has-xxx-template-def.html" class="navigation-link">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="boost-mpl-has-xxx-template-def">
<h1><a class="toc-backref" href="./introspection.html#id1593">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a></h1>
<div class="section" id="id1315">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./has-xxx-template-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a>(name) \
<em>unspecified token sequence</em> \
/**/
</pre>
</div>
<div class="section" id="id1316">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Expands into the definition of a boolean <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">has_name</span></tt>
such that for any type <tt class="literal"><span class="pre">x</span></tt> <tt class="literal"><span class="pre">has_name&lt;x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and
only if <tt class="literal"><span class="pre">x</span></tt> is a class type and has a nested template member
<tt class="literal"><span class="pre">x::template</span> <span class="pre">name</span></tt> with no more than
<a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a> parameters.</p>
<p>On deficient compilers not capable of performing the detection,
<tt class="literal"><span class="pre">has_name&lt;x&gt;::value</span></tt> is always <tt class="literal"><span class="pre">false</span></tt>. A boolean configuration
macro, <a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>, is provided to signal or
override the &quot;deficient&quot; status of a particular compiler.</p>
<p>[<em>Note:</em> <a class="reference internal" href="./has-xxx-template-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a> is a simplified front end to
the <a class="reference internal" href="./has-xxx-template-named-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a> introspection macro — <em>end note</em>]</p>
</div>
<div class="section" id="id1317">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/has_xxx.hpp" class="header">boost/mpl/has_xxx.hpp</a>&gt;
</pre>
</div>
<div class="section" id="id1318">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">name</span></tt></td>
<td>A legal identifier token</td>
<td>A name of the template member being detected.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1319">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any legal C++ identifier <tt class="literal"><span class="pre">name</span></tt>:</p>
<pre class="literal-block">
<a href="./has-xxx-template-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a>(name)
</pre>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">Appears at namespace scope.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
<a href="./has-xxx-template-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a>(
BOOST_PP_CAT(has_,name), name, false
)
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1320">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./has-xxx-template-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a>(xxx)
struct test1 {};
struct test2 { void xxx(); };
struct test3 { int xxx; };
struct test4 { static int xxx(); };
struct test5 { typedef int xxx; };
struct test6 { struct xxx; };
struct test7 { typedef void (*xxx)(); };
struct test8 { typedef void (xxx)(); };
struct test9 { template&lt; class T &gt; struct xxx {}; };
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test1&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test2&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test3&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test4&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test5&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test6&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test7&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test8&gt; ));
#if !defined(<a href="./cfg-no-has-xxx-template.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>)
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9&gt; ));
#endif
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9, <a href="./bool.html" class="identifier">true_</a>&gt; ));
</pre>
</div>
<div class="section" id="id1321">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-template-named-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a>,
<a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>, <a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a></p>
<!-- Macros/Introspection//BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF -->
<!-- Copyright Daniel Walker 2007. -->
<!-- Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-template-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./has-xxx-template-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"></div></td></tr></table></body>
</html>
@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-template-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-template-def.html" class="navigation-link">Back</a>&nbsp;<a href="./has-xxx-trait-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./introspection.html" class="navigation-link">Introspection</a> / <a href="./has-xxx-template-named-def.html" class="navigation-link">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="boost-mpl-has-xxx-template-named-def">
<h1><a class="toc-backref" href="./introspection.html#id1594">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a></h1>
<div class="section" id="id1322">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./has-xxx-template-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a>(trait, name, default_) \
<em>unspecified token sequence</em> \
/**/
</pre>
</div>
<div class="section" id="id1323">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Expands into the definition of a boolean <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">trait</span></tt> such
that for any type <tt class="literal"><span class="pre">x</span></tt> <tt class="literal"><span class="pre">trait&lt;x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if
<tt class="literal"><span class="pre">x</span></tt> is a class type and has a nested template member <tt class="literal"><span class="pre">x::template</span>
<span class="pre">name</span></tt> with no more than <a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a>
parameters.</p>
<p>On deficient compilers not capable of performing the detection,
<tt class="literal"><span class="pre">trait&lt;x&gt;::value</span></tt> always returns a fallback value <tt class="literal"><span class="pre">default_</span></tt>. A
boolean configuration macro, <a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>, is
provided to signal or override the &quot;deficient&quot; status of a particular
compiler. [<em>Note:</em> The fallback value can also be provided at the
point of the metafunction invocation; see the <cite>Expression semantics</cite>
section for details — <em>end note</em>]</p>
</div>
<div class="section" id="id1324">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/has_xxx.hpp" class="header">boost/mpl/has_xxx.hpp</a>&gt;
</pre>
</div>
<div class="section" id="id1325">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">trait</span></tt></td>
<td>A legal identifier token</td>
<td>A name of the metafunction to be generated.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">name</span></tt></td>
<td>A legal identifier token</td>
<td>A name of the member being detected.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">default_</span></tt></td>
<td>An boolean constant</td>
<td>A fallback value for the deficient compilers.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1326">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any legal C++ identifiers <tt class="literal"><span class="pre">trait</span></tt> and <tt class="literal"><span class="pre">name</span></tt>, boolean constant
expression <tt class="literal"><span class="pre">c1</span></tt>, boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c2</span></tt>, and arbitrary
type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
<a href="./has-xxx-template-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a>(trait, name, c1)
</pre>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">Appears at namespace scope.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Expands into an equivalent of the following class template
definition</p>
<pre class="literal-block">
template&lt;
typename X
, typename fallback = boost::mpl::<a href="./bool.html" class="identifier">bool_</a>&lt;c1&gt;
&gt;
struct trait
{
// <em>unspecified</em>
// ...
};
</pre>
<p>where <tt class="literal"><span class="pre">trait</span></tt> is a boolean <a class="reference internal" href="./metafunction.html">Metafunction</a> with the following
semantics:</p>
<pre class="literal-block">
typedef trait&lt;x&gt;::type r;
</pre>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a> is defined, <tt class="literal"><span class="pre">r::value</span>
<span class="pre">==</span> <span class="pre">c1</span></tt>; otherwise, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if <tt class="literal"><span class="pre">x</span></tt>
is a class type that has a nested template member <tt class="literal"><span class="pre">x::template</span>
<span class="pre">name</span></tt> with no more than <a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a>.</td>
</tr>
</tbody>
</table>
<pre class="literal-block">
typedef trait&lt; x, c2 &gt;::type r;
</pre>
<table class="last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">If <a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a> is defined, <tt class="literal"><span class="pre">r::value</span>
<span class="pre">==</span> <span class="pre">c2::value</span></tt>; otherwise, equivalent to</p>
<pre class="last literal-block">
typedef trait&lt;x&gt;::type r;
</pre>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="id1327">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./has-xxx-template-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF</a>(
has_xxx, xxx, false
)
struct test1 {};
struct test2 { void xxx(); };
struct test3 { int xxx; };
struct test4 { static int xxx(); };
struct test5 { typedef int xxx; };
struct test6 { struct xxx; };
struct test7 { typedef void (*xxx)(); };
struct test8 { typedef void (xxx)(); };
struct test9 { template&lt; class T &gt; struct xxx {}; };
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test1&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test2&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test3&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test4&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test5&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test6&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test7&gt; ));
<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( has_xxx&lt;test8&gt; ));
#if !defined(<a href="./cfg-no-has-xxx-template.html" class="identifier">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>)
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9&gt; ));
#endif
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9, <a href="./bool.html" class="identifier">true_</a>&gt; ));
</pre>
</div>
<div class="section" id="id1328">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-template-def.html">BOOST_MPL_HAS_XXX_TEMPLATE_DEF</a>,
<a class="reference internal" href="./cfg-no-has-xxx-template.html">BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE</a>, <a class="reference internal" href="./limit-metafunction-arity.html">BOOST_MPL_LIMIT_METAFUNCTION_ARITY</a></p>
<!-- Macros/Introspection//BOOST_MPL_HAS_XXX_TRAIT_DEF -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-template-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-template-def.html" class="navigation-link">Back</a>&nbsp;<a href="./has-xxx-trait-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"></div></td></tr></table></body>
</html>
+36 -36
View File
@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_DEF</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-template-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-template-named-def.html" class="navigation-link">Back</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./introspection.html" class="navigation-link">Introspection</a> / <a href="./has-xxx-trait-def.html" class="navigation-link">BOOST_MPL_HAS_XXX_TRAIT_DEF</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="has-xxx-trait-def">
<h1><a class="toc-backref" href="./introspection.html#id516" name="has-xxx-trait-def">BOOST_MPL_HAS_XXX_TRAIT_DEF</a></h1>
<div class="section" id="introspection-has-synopsis">
<div class="section" id="boost-mpl-has-xxx-trait-def">
<h1><a class="toc-backref" href="./introspection.html#id1595">BOOST_MPL_HAS_XXX_TRAIT_DEF</a></h1>
<div class="section" id="id1329">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./has-xxx-trait-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>(name) \
@@ -24,36 +21,36 @@
/**/
</pre>
</div>
<div class="section" id="introspection-has-description">
<div class="section" id="id1330">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Expands into a definition of a boolean unary <a class="reference" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">has_name</span></tt>
<p>Expands into a definition of a boolean unary <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">has_name</span></tt>
such that for any type <tt class="literal"><span class="pre">x</span></tt> <tt class="literal"><span class="pre">has_name&lt;x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only
if <tt class="literal"><span class="pre">x</span></tt> is a class type and has a nested type memeber <tt class="literal"><span class="pre">x::name</span></tt>.</p>
<p>On the deficient compilers not capabale of performing the detection,
<tt class="literal"><span class="pre">has_name&lt;x&gt;::value</span></tt> always returns <tt class="literal"><span class="pre">false</span></tt>. A boolean configuraion
macro, <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a>, is provided to signal or override
<p>On the deficient compilers not capabale of performing the detection,
<tt class="literal"><span class="pre">has_name&lt;x&gt;::value</span></tt> always returns <tt class="literal"><span class="pre">false</span></tt>. A boolean configuraion
macro, <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a>, is provided to signal or override
the &quot;deficient&quot; status of a particular compiler.</p>
<p>[<em>Note:</em> <a class="refentry reference" href="./has-xxx-trait-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_DEF</span></tt></a> is a simplified front end to
the <a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</span></tt></a> introspection macro — <em>end note</em>]</p>
<p>[<em>Note:</em> <a class="reference internal" href="./has-xxx-trait-def.html">BOOST_MPL_HAS_XXX_TRAIT_DEF</a> is a simplified front end to
the <a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a> introspection macro — <em>end note</em>]</p>
</div>
<div class="section" id="introspection-has-header">
<div class="section" id="id1331">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/has_xxx.hpp" class="header">boost/mpl/has_xxx.hpp</a>&gt;
</pre>
</div>
<div class="section" id="introspection-has-parameters">
<div class="section" id="id1332">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -64,19 +61,21 @@ the <a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt clas
</tbody>
</table>
</div>
<div class="section" id="introspection-has-expression-semantics">
<div class="section" id="id1333">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any legal C++ identifier <tt class="literal"><span class="pre">name</span></tt>:</p>
<pre class="literal-block">
<a href="./has-xxx-trait-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>(name)
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">Appears at namespace scope.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">Appears at namespace scope.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -89,10 +88,10 @@ the <a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt clas
</tbody>
</table>
</div>
<div class="section" id="introspection-has-example">
<div class="section" id="id1334">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./has-xxx-trait-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>(has_xxx)
<a href="./has-xxx-trait-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>(xxx)
struct test1 {};
struct test2 { void xxx(); };
@@ -117,21 +116,22 @@ struct test9 { typedef void (xxx)(); };
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9&gt; ));
#endif
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test6,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test7,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test8,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test6,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test7,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test8,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9,<a href="./bool.html" class="identifier">true_</a>&gt; ));
</pre>
</div>
<div class="section" id="introspection-has-see-also">
<div class="section" id="id1335">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./macros.html">Macros</a>, <a class="refentry reference" href="./has-xxx-trait-named-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</span></tt></a>, <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a></p>
<!-- modtime: November 13, 2004 02:52:01 +0000 -->
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-trait-named-def.html">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a>, <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a></p>
<!-- Macros/Introspection//BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-template-named-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-template-named-def.html" class="navigation-link">Back</a>&nbsp;<a href="./has-xxx-trait-named-def.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+44 -43
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -14,9 +11,9 @@
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./configuration.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-trait-def.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./macros.html" class="navigation-link">Macros</a> / <a href="./introspection.html" class="navigation-link">Introspection</a> / <a href="./has-xxx-trait-named-def.html" class="navigation-link">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="has-xxx-trait-named-def">
<h1><a class="toc-backref" href="./introspection.html#id517" name="has-xxx-trait-named-def">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></h1>
<div class="section" id="macros-introspection-has-synopsis">
<div class="section" id="boost-mpl-has-xxx-trait-named-def">
<h1><a class="toc-backref" href="./introspection.html#id1596">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a></h1>
<div class="section" id="id1336">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
#define <a href="./has-xxx-trait-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a>(trait, name, default_) \
@@ -24,37 +21,37 @@
/**/
</pre>
</div>
<div class="section" id="macros-introspection-has-description">
<div class="section" id="id1337">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Expands into a definition of a boolean unary <a class="reference" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">trait</span></tt>
<p>Expands into a definition of a boolean unary <a class="reference internal" href="./metafunction.html">Metafunction</a> <tt class="literal"><span class="pre">trait</span></tt>
such that for any type <tt class="literal"><span class="pre">x</span></tt> <tt class="literal"><span class="pre">trait&lt;x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only
if <tt class="literal"><span class="pre">x</span></tt> is a class type and has a nested type memeber <tt class="literal"><span class="pre">x::name</span></tt>.</p>
<p>On the deficient compilers not capabale of performing the detection,
<tt class="literal"><span class="pre">trait&lt;x&gt;::value</span></tt> always returns a fallback value <tt class="literal"><span class="pre">default_</span></tt>.
A boolean configuraion macro, <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a>, is provided
<p>On the deficient compilers not capabale of performing the detection,
<tt class="literal"><span class="pre">trait&lt;x&gt;::value</span></tt> always returns a fallback value <tt class="literal"><span class="pre">default_</span></tt>.
A boolean configuraion macro, <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a>, is provided
to signal or override the &quot;deficient&quot; status of a particular compiler.
[<em>Note:</em> The fallback value call also be provided at the point of the
metafunction invocation; see the <cite>Expression semantics</cite> section for
[<em>Note:</em> The fallback value can also be provided at the point of the
metafunction invocation; see the <cite>Expression semantics</cite> section for
details — <em>end note</em>]</p>
</div>
<div class="section" id="macros-introspection-has-header">
<div class="section" id="id1338">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/has_xxx.hpp" class="header">boost/mpl/has_xxx.hpp</a>&gt;
</pre>
</div>
<div class="section" id="macros-introspection-has-parameters">
<div class="section" id="id1339">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -73,20 +70,22 @@ details — <em>end note</em>]</p>
</tbody>
</table>
</div>
<div class="section" id="macros-introspection-has-expression-semantics">
<div class="section" id="id1340">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any legal C++ identifiers <tt class="literal"><span class="pre">trait</span></tt> and <tt class="literal"><span class="pre">name</span></tt>, boolean constant expression <tt class="literal"><span class="pre">c1</span></tt>,
boolean <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c2</span></tt>, and arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<p>For any legal C++ identifiers <tt class="literal"><span class="pre">trait</span></tt> and <tt class="literal"><span class="pre">name</span></tt>, boolean constant expression <tt class="literal"><span class="pre">c1</span></tt>,
boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c2</span></tt>, and arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
<a href="./has-xxx-trait-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a>(trait, name, c1)
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body">Appears at namespace scope.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first">Appears at namespace scope.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">None.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">None.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Expands into an equivalent of the following class template definition</p>
<pre class="literal-block">
@@ -97,18 +96,18 @@ struct trait
// ...
};
</pre>
<p>where <tt class="literal"><span class="pre">trait</span></tt> is a boolean <a class="reference" href="./metafunction.html">Metafunction</a> with the following semantics:</p>
<p>where <tt class="literal"><span class="pre">trait</span></tt> is a boolean <a class="reference internal" href="./metafunction.html">Metafunction</a> with the following semantics:</p>
<pre class="literal-block">
typedef trait&lt;x&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a> is defined, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">c1</span></tt>;
otherwise, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if <tt class="literal"><span class="pre">x</span></tt> is a class type
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a> is defined, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">c1</span></tt>;
otherwise, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if <tt class="literal"><span class="pre">x</span></tt> is a class type
that has a nested type memeber <tt class="literal"><span class="pre">x::name</span></tt>.</td>
</tr>
</tbody>
@@ -116,13 +115,14 @@ that has a nested type memeber <tt class="literal"><span class="pre">x::name</sp
<pre class="literal-block">
typedef trait&lt; x,c2 &gt;::type r;
</pre>
<table class="last field-list" frame="void" rules="none">
<table class="last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./integral-constant.html">Integral Constant</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">If <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a> is defined, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">c2::value</span></tt>;
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">If <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a> is defined, <tt class="literal"><span class="pre">r::value</span> <span class="pre">==</span> <span class="pre">c2::value</span></tt>;
otherwise, equivalent to</p>
<pre class="last literal-block">
typedef trait&lt;x&gt;::type r;
@@ -136,7 +136,7 @@ typedef trait&lt;x&gt;::type r;
</tbody>
</table>
</div>
<div class="section" id="macros-introspection-has-example">
<div class="section" id="id1341">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
<a href="./has-xxx-trait-named-def.html" class="identifier">BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF</a>(has_xxx, xxx, false)
@@ -164,20 +164,21 @@ struct test9 { typedef void (xxx)(); };
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9&gt; ));
#endif
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test6,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test7,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test8,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9,true_&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test6,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test7,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test8,<a href="./bool.html" class="identifier">true_</a>&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( has_xxx&lt;test9,<a href="./bool.html" class="identifier">true_</a>&gt; ));
</pre>
</div>
<div class="section" id="macros-introspection-has-see-also">
<div class="section" id="id1342">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./macros.html">Macros</a>, <a class="refentry reference" href="./has-xxx-trait-def.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_HAS_XXX_TRAIT_DEF</span></tt></a>, <a class="refentry reference" href="./cfg-no-has-xxx.html"><tt class="refentry literal"><span class="pre">BOOST_MPL_CFG_NO_HAS_XXX</span></tt></a></p>
<!-- modtime: November 13, 2004 02:53:15 +0000 -->
<p><a class="reference internal" href="./macros.html">Macros</a>, <a class="reference internal" href="./has-xxx-trait-def.html">BOOST_MPL_HAS_XXX_TRAIT_DEF</a>, <a class="reference internal" href="./cfg-no-has-xxx.html">BOOST_MPL_CFG_NO_HAS_XXX</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-xxx-trait-def.html" class="navigation-link">Prev</a>&nbsp;<a href="./configuration.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-xxx-trait-def.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./introspection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+29 -29
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: identity</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./identity.html" class="navigation-link">identity</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="identity">
<h1><a class="toc-backref" href="./miscellaneous.html#id488" name="identity">identity</a></h1>
<div class="section" id="identity-synopsis">
<h1><a class="toc-backref" href="./miscellaneous.html#id1564">identity</a></h1>
<div class="section" id="id1146">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename X
&gt;
struct <a href="./identity.html" class="identifier">identity</a>
@@ -28,32 +25,32 @@ struct <a href="./identity.html" class="identifier">identity</a>
};
</pre>
</div>
<div class="section" id="identity-description">
<div class="section" id="id1147">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>The <a class="reference" href="http://mathworld.wolfram.com/IdentityFunction.html" target="_top">identity</a> metafunction. Returns <tt class="literal"><span class="pre">X</span></tt> unchanged.</p>
<p>The <a class="reference external" href="http://mathworld.wolfram.com/IdentityFunction.html" target="_top">identity</a> metafunction. Returns <tt class="literal"><span class="pre">X</span></tt> unchanged.</p>
</div>
<div class="section" id="identity-header">
<div class="section" id="id1149">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/identity.hpp" class="header">boost/mpl/identity.hpp</a>&gt;
</pre>
</div>
<div class="section" id="identity-model-of">
<div class="section" id="id1150">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./metafunction.html">Metafunction</a></p>
<p><a class="reference internal" href="./metafunction.html">Metafunction</a></p>
</div>
<div class="section" id="identity-parameters">
<div class="section" id="id1151">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="22%" />
<col width="28%" />
<col width="51%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -64,48 +61,51 @@ struct <a href="./identity.html" class="identifier">identity</a>
</tbody>
</table>
</div>
<div class="section" id="identity-expression-semantics">
<div class="section" id="id1152">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For an arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./identity.html" class="identifier">identity</a>&lt;x&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
<pre class="literal-block">
typedef x r;
</pre>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre">is_same&lt;r,x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</td>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first last"><tt class="literal"><span class="pre">is_same&lt;r,x&gt;::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="identity-example">
<div class="section" id="id1153">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./apply.html" class="identifier">apply</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;_1&gt;, char &gt;::type t1;
typedef <a href="./apply.html" class="identifier">apply</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;_2&gt;, char,int &gt;::type t2;
typedef <a href="./apply.html" class="identifier">apply</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>&gt;, char &gt;::type t1;
typedef <a href="./apply.html" class="identifier">apply</a>&lt; <a href="./identity.html" class="identifier">identity</a>&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt;, char,int &gt;::type t2;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; t1, char &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; t2, int > ));
</pre>
</div>
<div class="section" id="identity-see-also">
<div class="section" id="id1154">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./placeholders.html">Placeholders</a>, <a class="reference" href="./trivial.html">Trivial Metafunctions</a>, <a class="refentry reference" href="./always.html"><tt class="refentry literal"><span class="pre">always</span></tt></a>, <a class="refentry reference" href="./apply.html"><tt class="refentry literal"><span class="pre">apply</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:31 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./placeholders.html">Placeholders</a>, <a class="reference internal" href="./trivial.html#label-metafunctions-trivial">Trivial Metafunctions</a>, <a class="reference internal" href="./always.html">always</a>, <a class="reference internal" href="./apply.html">apply</a></p>
<!-- Metafunctions/Miscellaneous//always |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./miscellaneous.html" class="navigation-link">Prev</a>&nbsp;<a href="./always.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./always.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+35 -22
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: if_c</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./type-selection.html" class="navigation-link">Type Selection</a> / <a href="./if-c.html" class="navigation-link">if_c</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="if-c">
<h1><a class="toc-backref" href="./type-selection.html#id447" name="if-c">if_c</a></h1>
<div class="section" id="type-if-synopsis">
<h1><a class="toc-backref" href="./type-selection.html#id1521">if_c</a></h1>
<div class="section" id="id866">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
bool c
, typename T1
, typename T2
@@ -30,30 +27,30 @@ struct <a href="./if-c.html" class="identifier">if_c</a>
};
</pre>
</div>
<div class="section" id="type-if-description">
<div class="section" id="id867">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns one of its two arguments, <tt class="literal"><span class="pre">T1</span></tt> or <tt class="literal"><span class="pre">T2</span></tt>, depending on the value of
integral constant <tt class="literal"><span class="pre">c</span></tt>. <tt class="literal"><span class="pre"><a href="./if-c.html" class="identifier">if_c</a>&lt;c,t1,t2&gt;::type</span></tt> is a shorcut notation for
integral constant <tt class="literal"><span class="pre">c</span></tt>. <tt class="literal"><span class="pre"><a href="./if-c.html" class="identifier">if_c</a>&lt;c,t1,t2&gt;::type</span></tt> is a shorcut notation for
<tt class="literal"><span class="pre"><a href="./if.html" class="identifier">if_</a>&lt;</span> <span class="pre"><a href="./bool.html" class="identifier">bool_</a>&lt;c&gt;,t1,t2</span> <span class="pre">&gt;::type</span></tt>.</p>
</div>
<div class="section" id="type-if-header">
<div class="section" id="id868">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/if.hpp" class="header">boost/mpl/if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="type-if-parameters">
<div class="section" id="id869">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -68,13 +65,13 @@ integral constant <tt class="literal"><span class="pre">c</span></tt>. <tt class
</tbody>
</table>
</div>
<div class="section" id="type-if-expression-semantics">
<div class="section" id="id870">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any integral constant <tt class="literal"><span class="pre">c</span></tt> and arbitrary types <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./if-c.html" class="identifier">if_c</a>&lt;c,t1,t2&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
@@ -85,7 +82,7 @@ typedef <a href="./if-c.html" class="identifier">if_c</a>&lt;c,t1,t2&gt;::type t
</tbody>
</table>
</div>
<div class="section" id="type-if-example">
<div class="section" id="id871">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./if-c.html" class="identifier">if_c</a>&lt;true,char,long&gt;::type t1;
@@ -94,16 +91,32 @@ typedef <a href="./if-c.html" class="identifier">if_c</a>&lt;false,char,long&gt;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t1, char&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t2, long&gt; ));
</pre>
<pre class="literal-block">
// allocates space for an object of class T on heap or &quot;inplace&quot;
// depending on its <a href="./size.html" class="identifier">size</a>
template&lt; typename T &gt; struct lightweight
{
// ...
typedef typename <a href="./if-c.html" class="identifier">if_c</a>&lt;
sizeof(T) &lt;= sizeof(T*)
, inplace_storage&lt;T&gt;
, heap_storage&lt;T&gt;
&gt;::type impl_t;
impl_t impl;
};
</pre>
</div>
<div class="section" id="type-if-see-also">
<div class="section" id="id872">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./if.html"><tt class="refentry literal"><span class="pre">if_</span></tt></a>, <a class="refentry reference" href="./eval-if.html"><tt class="refentry literal"><span class="pre">eval_if</span></tt></a>, <a class="refentry reference" href="./bool.html"><tt class="refentry literal"><span class="pre">bool_</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:22 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./if.html">if_</a>, <a class="reference internal" href="./eval-if.html">eval_if</a>, <a class="reference internal" href="./bool.html">bool_</a></p>
<!-- Metafunctions/Type Selection//eval_if |30 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./if.html" class="navigation-link">Prev</a>&nbsp;<a href="./eval-if.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./if.html" class="navigation-link">Back</a>&nbsp;<a href="./eval-if.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./type-selection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+39 -26
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: if_</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,11 +12,11 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./type-selection.html" class="navigation-link">Type Selection</a> / <a href="./if.html" class="navigation-link">if_</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="if">
<h1><a class="toc-backref" href="./type-selection.html#id446" name="if">if_</a></h1>
<div class="section" id="if-synopsis">
<h1><a class="toc-backref" href="./type-selection.html#id1520">if_</a></h1>
<div class="section" id="id859">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename C
, typename T1
, typename T2
@@ -30,33 +27,33 @@ struct <a href="./if.html" class="identifier">if_</a>
};
</pre>
</div>
<div class="section" id="if-description">
<div class="section" id="id860">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns one of its two arguments, <tt class="literal"><span class="pre">T1</span></tt> or <tt class="literal"><span class="pre">T2</span></tt>, depending on the value <tt class="literal"><span class="pre">C</span></tt>.</p>
</div>
<div class="section" id="if-header">
<div class="section" id="id861">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/if.hpp" class="header">boost/mpl/if.hpp</a>&gt;
</pre>
</div>
<div class="section" id="if-parameters">
<div class="section" id="id862">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">C</span></tt></td>
<td><a class="reference" href="./integral-constant.html">Integral Constant</a></td>
<td><a class="reference internal" href="./integral-constant.html">Integral Constant</a></td>
<td>A selection condition.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt></td>
@@ -66,43 +63,59 @@ struct <a href="./if.html" class="identifier">if_</a>
</tbody>
</table>
</div>
<div class="section" id="if-expression-semantics">
<div class="section" id="id863">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> and arbitrary types <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>:</p>
<p>For any <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> and arbitrary types <tt class="literal"><span class="pre">t1</span></tt>, <tt class="literal"><span class="pre">t2</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./if.html" class="identifier">if_</a>&lt;c,t1,t2&gt;::type t;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">Any type.</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>, <tt class="literal"><span class="pre">t</span></tt> is identical to <tt class="literal"><span class="pre">t1</span></tt>; otherwise <tt class="literal"><span class="pre">t</span></tt> is
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body">If <tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt>, <tt class="literal"><span class="pre">t</span></tt> is identical to <tt class="literal"><span class="pre">t1</span></tt>; otherwise <tt class="literal"><span class="pre">t</span></tt> is
identical to <tt class="literal"><span class="pre">t2</span></tt>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="if-example">
<div class="section" id="id864">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./if.html" class="identifier">if_</a>&lt;true_,char,long&gt;::type t1;
typedef <a href="./if.html" class="identifier">if_</a>&lt;false_,char,long&gt;::type t2;
typedef <a href="./if.html" class="identifier">if_</a>&lt;<a href="./bool.html" class="identifier">true_</a>,char,long&gt;::type t1;
typedef <a href="./if.html" class="identifier">if_</a>&lt;<a href="./bool.html" class="identifier">false_</a>,char,long&gt;::type t2;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t1, char&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt;t2, long&gt; ));
</pre>
<pre class="literal-block">
// allocates space for an object of class T on heap or &quot;inplace&quot;
// depending on its <a href="./size.html" class="identifier">size</a>
template&lt; typename T &gt; struct lightweight
{
// ...
typedef typename <a href="./if.html" class="identifier">if_</a>&lt;
<a href="./less-equal.html" class="identifier">less_equal</a>&lt; <a href="./sizeof.html" class="identifier">sizeof_</a>&lt;T&gt;, <a href="./sizeof.html" class="identifier">sizeof_</a>&lt;T*&gt; &gt;
, inplace_storage&lt;T&gt;
, heap_storage&lt;T&gt;
&gt;::type impl_t;
impl_t impl;
};
</pre>
</div>
<div class="section" id="if-see-also">
<div class="section" id="id865">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./integral-constant.html">Integral Constant</a>, <a class="refentry reference" href="./if-c.html"><tt class="refentry literal"><span class="pre">if_c</span></tt></a>, <a class="refentry reference" href="./eval-if.html"><tt class="refentry literal"><span class="pre">eval_if</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:27 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./integral-constant.html">Integral Constant</a>, <a class="reference internal" href="./if-c.html">if_c</a>, <a class="reference internal" href="./eval-if.html">eval_if</a></p>
<!-- Metafunctions/Type Selection//if_c |20 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./type-selection.html" class="navigation-link">Prev</a>&nbsp;<a href="./if-c.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./if-c.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./type-selection.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+32 -33
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: inherit_linearly</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./inherit-linearly.html" class="navigation-link">inherit_linearly</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="inherit-linearly">
<h1><a class="toc-backref" href="./miscellaneous.html#id491" name="inherit-linearly">inherit_linearly</a></h1>
<div class="section" id="miscellaneous-inherit-synopsis">
<h1><a class="toc-backref" href="./miscellaneous.html#id1567">inherit_linearly</a></h1>
<div class="section" id="id1172">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,44 +27,44 @@ struct <a href="./inherit-linearly.html" class="identifier">inherit_linearly</a>
};
</pre>
</div>
<div class="section" id="miscellaneous-inherit-description">
<div class="section" id="id1173">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A convenience wrapper for <tt class="literal"><span class="pre"><a href="./fold.html" class="identifier">fold</a></span></tt> to use in the context of sequence-driven
class composition. Returns the result the successive application of binary
<tt class="literal"><span class="pre">Node</span></tt> to the result of the previous <tt class="literal"><span class="pre">Node</span></tt> invocation (<tt class="literal"><span class="pre">Root</span></tt> if it's
the first call) and every type in the <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">Types</span></tt> in order.</p>
<tt class="literal"><span class="pre">Node</span></tt> to the result of the previous <tt class="literal"><span class="pre">Node</span></tt> invocation (<tt class="literal"><span class="pre">Root</span></tt> if it's
the first call) and every type in the <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">Types</span></tt> in order.</p>
</div>
<div class="section" id="miscellaneous-inherit-header">
<div class="section" id="id1174">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/inherit_linearly.hpp" class="header">boost/mpl/inherit_linearly.hpp</a>&gt;
</pre>
</div>
<div class="section" id="miscellaneous-inherit-model-of">
<div class="section" id="id1175">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./metafunction.html">Metafunction</a></p>
<p><a class="reference internal" href="./metafunction.html">Metafunction</a></p>
</div>
<div class="section" id="miscellaneous-inherit-parameters">
<div class="section" id="id1176">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="32%" />
<col width="53%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Types</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>Types to inherit from.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Node</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>A derivation metafunction.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Root</span></tt></td>
@@ -78,33 +75,34 @@ hierarchy.</td>
</tbody>
</table>
</div>
<div class="section" id="miscellaneous-inherit-expression-semantics">
<div class="section" id="id1177">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">types</span></tt>, binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">node</span></tt>, and arbitrary
<p>For any <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">types</span></tt>, binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">node</span></tt>, and arbitrary
class type <tt class="literal"><span class="pre">root</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./inherit-linearly.html" class="identifier">inherit_linearly</a>&lt;types,node,root&gt;::type r;
typedef <a href="./inherit-linearly.html" class="identifier">inherit_linearly</a>&lt;types,node,root&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A class type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A class type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./fold.html" class="identifier">fold</a>&lt;types,root,node&gt;::type r;
typedef <a href="./fold.html" class="identifier">fold</a>&lt;types,root,node&gt;::type r;
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="miscellaneous-inherit-complexity">
<div class="section" id="id1178">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Linear. Exactly <tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;types&gt;::value</span></tt> applications of <tt class="literal"><span class="pre">node</span></tt>.</p>
</div>
<div class="section" id="miscellaneous-inherit-example">
<div class="section" id="id1179">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename T &gt; struct tuple_field
@@ -121,14 +119,14 @@ T&amp; field(tuple_field&lt;T&gt;&amp; t)
typedef <a href="./inherit-linearly.html" class="identifier">inherit_linearly</a>&lt;
<a href="./vector.html" class="identifier">vector</a>&lt;int,char const*,bool&gt;
, <a href="./inherit.html" class="identifier">inherit</a>&lt; _1, tuple_field&lt;_2&gt; &gt;
, <a href="./inherit.html" class="identifier">inherit</a>&lt; <a href="./placeholders.html" class="identifier">_1</a>, tuple_field&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt; &gt;
&gt;::type tuple;
int main()
{
tuple t;
field&lt;int&gt;(t) = -1;
field&lt;char const*&gt;(t) = &quot;text&quot;;
field&lt;bool&gt;(t) = false;
@@ -141,15 +139,16 @@ int main()
}
</pre>
</div>
<div class="section" id="miscellaneous-inherit-see-also">
<div class="section" id="id1180">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./algorithms.html">Algorithms</a>, <a class="refentry reference" href="./inherit.html"><tt class="refentry literal"><span class="pre">inherit</span></tt></a>, <a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a>, <a class="refentry reference" href="./fold.html"><tt class="refentry literal"><span class="pre">fold</span></tt></a>, <a class="refentry reference" href="./reverse-fold.html"><tt class="refentry literal"><span class="pre">reverse_fold</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:14 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./inherit.html">inherit</a>, <a class="reference internal" href="./empty-base.html">empty_base</a>, <a class="reference internal" href="./fold.html">fold</a>, <a class="reference internal" href="./reverse-fold.html">reverse_fold</a></p>
<!-- Metafunctions/Miscellaneous//numeric_cast |50 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./inherit.html" class="navigation-link">Prev</a>&nbsp;<a href="./numeric-cast.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inherit.html" class="navigation-link">Back</a>&nbsp;<a href="./numeric-cast.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+42 -38
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: inherit</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./miscellaneous.html" class="navigation-link">Miscellaneous</a> / <a href="./inherit.html" class="navigation-link">inherit</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="inherit">
<h1><a class="toc-backref" href="./miscellaneous.html#id490" name="inherit">inherit</a></h1>
<div class="section" id="inherit-synopsis">
<h1><a class="toc-backref" href="./miscellaneous.html#id1566">inherit</a></h1>
<div class="section" id="id1163">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -49,35 +46,35 @@ struct <a href="./inherit.html" class="identifier">inherit</a>
};
</pre>
</div>
<div class="section" id="inherit-description">
<div class="section" id="id1164">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>Returns an unspecified class type publically derived from <tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt>.
Guarantees that derivation from <a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a> is always a no-op,
regardless of the position and number of <a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a> classes in
Guarantees that derivation from <a class="reference internal" href="./empty-base.html">empty_base</a> is always a no-op,
regardless of the position and number of <a class="reference internal" href="./empty-base.html">empty_base</a> classes in
<tt class="literal"><span class="pre">T1</span></tt>, <tt class="literal"><span class="pre">T2</span></tt>,... <tt class="literal"><span class="pre">Tn</span></tt>.</p>
</div>
<div class="section" id="inherit-header">
<div class="section" id="id1165">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/inherit.hpp" class="header">boost/mpl/inherit.hpp</a>&gt;
</pre>
</div>
<div class="section" id="inherit-model-of">
<div class="section" id="id1166">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./metafunction.html">Metafunction</a></p>
<p><a class="reference internal" href="./metafunction.html">Metafunction</a></p>
</div>
<div class="section" id="inherit-parameters">
<div class="section" id="id1167">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="22%" />
<col width="28%" />
<col width="51%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -88,19 +85,21 @@ regardless of the position and number of <a class="refentry reference" href="./e
</tbody>
</table>
</div>
<div class="section" id="inherit-expression-semantics">
<div class="section" id="id1168">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For artibrary class types <em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>:</p>
<pre class="literal-block">
typedef inherit2&lt;t1,t2&gt;::type r;
typedef inherit2&lt;t1,t2&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A class type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A class type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">t1</span></tt> and <tt class="literal"><span class="pre">t2</span></tt> are complete types.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">t1</span></tt> and <tt class="literal"><span class="pre">t2</span></tt> are complete types.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">If both <tt class="literal"><span class="pre">t1</span></tt> and <tt class="literal"><span class="pre">t2</span></tt> are identical to <tt class="literal"><span class="pre"><a href="./empty-base.html" class="identifier">empty_base</a></span></tt>, equivalent to</p>
<pre class="literal-block">
@@ -124,15 +123,17 @@ struct r : t1, t2 {};
</table>
<!-- ........................................................................... -->
<pre class="literal-block">
typedef <a href="./inherit.html" class="identifier">inherit</a><em>n</em>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
typedef <a href="./inherit.html" class="identifier">inherit</a><em>n</em>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A class type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A class type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub> are complete types.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub> are complete types.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
@@ -150,30 +151,32 @@ struct r
</table>
<!-- ........................................................................... -->
<pre class="literal-block">
typedef <a href="./inherit.html" class="identifier">inherit</a>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
typedef <a href="./inherit.html" class="identifier">inherit</a>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub> are complete types.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub> are complete types.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body">A class type.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first">A class type.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
<pre class="last literal-block">
typedef <a href="./inherit.html" class="identifier">inherit</a><em>n</em>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
typedef <a href="./inherit.html" class="identifier">inherit</a><em>n</em>&lt;t1,t2,<em>...</em>t<em>n</em>&gt;::type r;
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inherit-complexity">
<div class="section" id="id1169">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="inherit-example">
<div class="section" id="id1170">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
struct udt1 { int n; };
@@ -187,22 +190,23 @@ typedef <a href="./inherit.html" class="identifier">inherit</a>&lt;<a href="./em
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_base_and_derived&lt; udt1, r1&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_base_and_derived&lt; udt2, r1&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r2, udt1&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r2, udt1&gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r3, udt1 &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_base_and_derived&lt; udt1, r4 &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_base_and_derived&lt; udt2, r4 &gt; ));
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; r5, <a href="./empty-base.html" class="identifier">empty_base</a> > ));
</pre>
</div>
<div class="section" id="inherit-see-also">
<div class="section" id="id1171">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="refentry reference" href="./empty-base.html"><tt class="refentry literal"><span class="pre">empty_base</span></tt></a>, <a class="refentry reference" href="./inherit-linearly.html"><tt class="refentry literal"><span class="pre">inherit_linearly</span></tt></a>, <a class="refentry reference" href="./identity.html"><tt class="refentry literal"><span class="pre">identity</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:17 +0000 -->
<p><a class="reference internal" href="./metafunctions.html">Metafunctions</a>, <a class="reference internal" href="./empty-base.html">empty_base</a>, <a class="reference internal" href="./inherit-linearly.html">inherit_linearly</a>, <a class="reference internal" href="./identity.html">identity</a></p>
<!-- Metafunctions/Miscellaneous//inherit_linearly |40 -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./always.html" class="navigation-link">Prev</a>&nbsp;<a href="./inherit-linearly.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./always.html" class="navigation-link">Back</a>&nbsp;<a href="./inherit-linearly.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./miscellaneous.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+38 -37
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: insert_range</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,8 +12,8 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./insert-range.html" class="navigation-link">insert_range</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="insert-range">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id365" name="insert-range">insert_range</a></h1>
<div class="section" id="intrinsic-insert-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1437">insert_range</a></h1>
<div class="section" id="id283">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
@@ -30,86 +27,89 @@ struct <a href="./insert-range.html" class="identifier">insert_range</a>
};
</pre>
</div>
<div class="section" id="intrinsic-insert-description">
<div class="section" id="id284">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a></span></tt> performs an insertion of a range of elements at an arbitrary position in
<p><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a></span></tt> performs an insertion of a range of elements at an arbitrary position in
the sequence.</p>
</div>
<div class="section" id="intrinsic-insert-header">
<div class="section" id="id285">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/insert_range.hpp" class="header">boost/mpl/insert_range.hpp</a>&gt;
</pre>
</div>
<div class="section" id="intrinsic-insert-model-of">
<div class="section" id="id286">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="intrinsic-insert-parameters">
<div class="section" id="id287">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>A sequence to insert into.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pos</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>An iterator in <tt class="literal"><span class="pre">Sequence</span></tt> specifying the
insertion position.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Range</span></tt></td>
<td><a class="reference" href="./forward-sequence.html">Forward Sequence</a></td>
<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td>
<td>The range of elements to be inserted.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-insert-expression-semantics">
<div class="section" id="id288">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>For any <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>, and <a class="reference" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">range</span></tt>:</p>
<p>For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>, and <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">range</span></tt>:</p>
<pre class="literal-block">
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,range&gt;::type r;
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,range&gt;::type r;
</pre>
<table class="field-list" frame="void" rules="none">
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">pos</span></tt> is an iterator into <tt class="literal"><span class="pre">s</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">pos</span></tt> is an iterator into <tt class="literal"><span class="pre">s</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is a sequence, <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">r</span></tt> is a sequence, <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), [<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;r&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;r&gt;::type</span></tt>),
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</td>
[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">The relative order of the elements in <tt class="literal"><span class="pre">r</span></tt> is the same as in <tt class="literal"><span class="pre">s</span></tt>;</p>
<pre class="last literal-block">
<a href="./size.html" class="identifier">size</a>&lt;r&gt;::value == <a href="./size.html" class="identifier">size</a>&lt;s&gt;::value + <a href="./size.html" class="identifier">size</a>&lt;range&gt;::value
<a href="./size.html" class="identifier">size</a>&lt;r&gt;::value == <a href="./size.html" class="identifier">size</a>&lt;s&gt;::value + <a href="./size.html" class="identifier">size</a>&lt;range&gt;::value
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="intrinsic-insert-complexity">
<div class="section" id="id289">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Sequence dependent. Quadratic in the worst case, linear at best; see the particular
<p>Sequence dependent. Quadratic in the worst case, linear at best; see the particular
sequence class' specification for details.</p>
</div>
<div class="section" id="intrinsic-insert-example">
<div class="section" id="id290">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,0,1,7,8,9&gt; numbers;
@@ -119,7 +119,7 @@ typedef <a href="./insert-range.html" class="identifier">insert_range</a>&lt; nu
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./size.html" class="identifier">size</a>&lt;range&gt;::value, ==, 10 );
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt; range,<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt; &gt; ));
typedef <a href="./insert-range.html" class="identifier">insert_range</a>&lt;
typedef <a href="./insert-range.html" class="identifier">insert_range</a>&lt;
<a href="./list.html" class="identifier">list</a><tt class="literal"><span class="pre">0</span></tt>&lt;&gt;
, <a href="./end.html" class="identifier">end</a>&lt; <a href="./list.html" class="identifier">list</a><tt class="literal"><span class="pre">0</span></tt>&lt;&gt; &gt;::type
, <a href="./list.html" class="identifier">list</a>&lt;int&gt;
@@ -128,15 +128,16 @@ typedef <a href="./insert-range.html" class="identifier">insert_range</a>&lt;
<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./size.html" class="identifier">size</a>&lt;result2&gt;::value, ==, 1 );
</pre>
</div>
<div class="section" id="intrinsic-insert-see-also">
<div class="section" id="id291">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="refentry reference" href="./insert.html"><tt class="refentry literal"><span class="pre">insert</span></tt></a>, <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a>, <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:01 +0000 -->
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./insert.html">insert</a>, <a class="reference internal" href="./push-front.html">push_front</a>, <a class="reference internal" href="./push-back.html">push_back</a>, <a class="reference internal" href="./erase.html">erase</a></p>
<!-- Sequences/Intrinsic Metafunctions//is_sequence -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./insert.html" class="navigation-link">Prev</a>&nbsp;<a href="./is-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./insert.html" class="navigation-link">Back</a>&nbsp;<a href="./is-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+55 -54
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: insert</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,14 +12,14 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./insert.html" class="navigation-link">insert</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="insert">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id364" name="insert">insert</a></h1>
<div class="section" id="insert-synopsis">
<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1436">insert</a></h1>
<div class="section" id="id274">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
template&lt;
typename Sequence
, typename Pos
, typename T
, typename T
&gt;
struct <a href="./insert.html" class="identifier">insert</a>
{
@@ -30,9 +27,9 @@ struct <a href="./insert.html" class="identifier">insert</a>
};
template&lt;
template&lt;
typename Sequence
, typename T
, typename T
&gt;
struct <a href="./insert.html" class="identifier">insert</a>
{
@@ -40,49 +37,49 @@ struct <a href="./insert.html" class="identifier">insert</a>
};
</pre>
</div>
<div class="section" id="insert-description">
<div class="section" id="id275">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a></span></tt> is an <a class="reference" href="./terminology.html#overloaded-name">overloaded name</a>:</p>
<p><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a></span></tt> is an <a class="reference internal" href="./terminology.html#overloaded-name">overloaded name</a>:</p>
<ul class="simple">
<li><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;Sequence,Pos,T&gt;</span></tt> performs an insertion of
type <tt class="literal"><span class="pre">T</span></tt> at an arbitrary position <tt class="literal"><span class="pre">Pos</span></tt> in <tt class="literal"><span class="pre">Sequence</span></tt>. <tt class="literal"><span class="pre">Pos</span></tt> is ignored is
<tt class="literal"><span class="pre">Sequence</span></tt> is a model of <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>.</li>
<li><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;Sequence,T&gt;</span></tt> is a shortcut notation for <tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;Sequence,Pos,T&gt;</span></tt> for the
case when <tt class="literal"><span class="pre">Sequence</span></tt> is a model of <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>.</li>
<tt class="literal"><span class="pre">Sequence</span></tt> is a model of <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>.</li>
<li><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;Sequence,T&gt;</span></tt> is a shortcut notation for <tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;Sequence,Pos,T&gt;</span></tt> for the
case when <tt class="literal"><span class="pre">Sequence</span></tt> is a model of <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>.</li>
</ul>
</div>
<div class="section" id="insert-header">
<div class="section" id="id276">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/insert.hpp" class="header">boost/mpl/insert.hpp</a>&gt;
</pre>
</div>
<div class="section" id="insert-model-of">
<div class="section" id="id277">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./tag-dispatched.html">Tag Dispatched Metafunction</a></p>
<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p>
</div>
<div class="section" id="insert-parameters">
<div class="section" id="id278">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="15%" />
<col width="36%" />
<col width="48%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td>
<td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or
<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>A sequence to insert into.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Pos</span></tt></td>
<td><a class="reference" href="./forward-iterator.html">Forward Iterator</a></td>
<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td>
<td>An iterator in <tt class="literal"><span class="pre">Sequence</span></tt> specifying the
insertion position.</td>
</tr>
@@ -93,23 +90,26 @@ insertion position.</td>
</tbody>
</table>
</div>
<div class="section" id="insert-expression-semantics">
<div class="section" id="id279">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<p class="compound-first">For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>, and arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type r;
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type r;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></p>
</td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">pos</span></tt> is an iterator in <tt class="literal"><span class="pre">s</span></tt>.</td>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">pos</span></tt> is an iterator in <tt class="literal"><span class="pre">s</span></tt>.</p>
</td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is a sequence, <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), <tt class="literal"><span class="pre">x</span></tt>, [<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</td>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">r</span></tt> is a sequence, <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements:
[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), <tt class="literal"><span class="pre">x</span></tt>, [<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>).</p>
</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">The relative order of the elements in <tt class="literal"><span class="pre">r</span></tt> is the same as in <tt class="literal"><span class="pre">s</span></tt>.</p>
<pre class="literal-block">
@@ -117,7 +117,7 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::ty
</pre>
<p>is identical to <tt class="literal"><span class="pre">x</span></tt>;</p>
<pre class="last literal-block">
<a href="./size.html" class="identifier">size</a>&lt;r&gt;::value == <a href="./size.html" class="identifier">size</a>&lt;s&gt;::value + 1;
<a href="./size.html" class="identifier">size</a>&lt;r&gt;::value == <a href="./size.html" class="identifier">size</a>&lt;s&gt;::value + 1;
</pre>
</td>
</tr>
@@ -125,18 +125,18 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::ty
</table>
</div>
<div class="expression-semantics compound">
<p class="compound-first">For any <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>,
<p class="compound-first">For any <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>,
and arbitrary type <tt class="literal"><span class="pre">x</span></tt>:</p>
<pre class="compound-middle literal-block">
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,x&gt;::type r;
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,x&gt;::type r;
</pre>
<table class="compound-middle field-list" frame="void" rules="none">
<table class="compound-middle docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
</tr>
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <a class="reference" href="./terminology.html#concept-identical">concept-identical</a> and equivalent to <tt class="literal"><span class="pre">s</span></tt>, except that
<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> and equivalent to <tt class="literal"><span class="pre">s</span></tt>, except that
<tt class="literal"><span class="pre"><a href="./at.html" class="identifier">at</a>&lt;</span> <span class="pre">r,</span> <span class="pre"><a href="./key-type.html" class="identifier">key_type</a>&lt;s,x&gt;::type</span> <span class="pre">&gt;::type</span></tt> is identical to <tt class="literal"><span class="pre"><a href="./value-type.html" class="identifier">value_type</a>&lt;s,x&gt;::type</span></tt>.</td>
</tr>
<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;r&gt;::value</span> <span class="pre">==</span> <span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::value</span> <span class="pre">+</span> <span class="pre">1</span></tt>.</td>
@@ -145,13 +145,13 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,x&gt;::type r
</table>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<pre class="compound-middle literal-block">
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type r;
typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type r;
</pre>
<table class="compound-last field-list" frame="void" rules="none">
<table class="compound-last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
</tr>
<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><tt class="literal"><span class="pre">pos</span></tt> is an iterator in <tt class="literal"><span class="pre">s</span></tt>.</td>
</tr>
@@ -161,30 +161,30 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::ty
</table>
</div>
</div>
<div class="section" id="insert-complexity">
<div class="section" id="id280">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="45%" />
<col width="55%" />
</colgroup>
<thead valign="bottom">
<tr><th>Sequence archetype</th>
<th>Complexity</th>
<tr><th class="head">Sequence archetype</th>
<th class="head">Complexity</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a></td>
<tr><td><a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td>
<td>Amortized constant time.</td>
</tr>
<tr><td><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a></td>
<tr><td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></td>
<td>Linear in the worst case, or amortized
constant time.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="insert-example">
<div class="section" id="id281">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,0,1,3,4,5,6,7,8,9&gt; numbers;
@@ -203,15 +203,16 @@ typedef <a href="./insert.html" class="identifier">insert</a>&lt;m,mpl::<a href=
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same&lt; <a href="./at.html" class="identifier">at</a>&lt;m1,char&gt;::type,long > ));
</pre>
</div>
<div class="section" id="insert-see-also">
<div class="section" id="id282">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference" href="./extensible-associative.html">Extensible Associative Sequence</a>, <a class="refentry reference" href="./insert-range.html"><tt class="refentry literal"><span class="pre">insert_range</span></tt></a>, <a class="refentry reference" href="./push-front.html"><tt class="refentry literal"><span class="pre">push_front</span></tt></a>, <a class="refentry reference" href="./push-back.html"><tt class="refentry literal"><span class="pre">push_back</span></tt></a>, <a class="refentry reference" href="./erase.html"><tt class="refentry literal"><span class="pre">erase</span></tt></a></p>
<!-- modtime: November 10, 2004 04:40:08 +0000 -->
<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a>, <a class="reference internal" href="./insert-range.html">insert_range</a>, <a class="reference internal" href="./push-front.html">push_front</a>, <a class="reference internal" href="./push-back.html">push_back</a>, <a class="reference internal" href="./erase.html">erase</a></p>
<!-- Sequences/Intrinsic Metafunctions//insert_range -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./has-key.html" class="navigation-link">Prev</a>&nbsp;<a href="./insert-range.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./has-key.html" class="navigation-link">Back</a>&nbsp;<a href="./insert-range.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./intrinsic-metafunctions.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
@@ -1,61 +1,58 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: inserter</title>
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: inserter (class)</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
<body class="docframe refmanual">
<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./front-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./iteration-algorithms.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./front-inserter.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./inserters.html" class="navigation-link">Inserters</a> / <a href="./inserters-inserter.html" class="navigation-link">inserter</a></td>
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./inserters.html" class="navigation-link">Inserters</a> / <a href="./inserter-class.html" class="navigation-link">inserter (class)</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="inserters-inserter">
<h1><a class="toc-backref" href="./inserters.html#id395" name="inserters-inserter">inserter</a></h1>
<a class="target" id="id87" name="id87"></a><div class="section" id="inserters-synopsis">
<div class="section" id="inserter-class">
<span id="id483"></span><h1><a class="toc-backref" href="./inserters.html#id1467">inserter (class)</a></h1>
<div class="section" id="id484">
<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
<pre class="literal-block">
template&lt;
typename State
, typename Operation
&gt;
struct <a href="./inserter.html" class="identifier">inserter</a>
struct <a href="./inserter-class.html" class="identifier">inserter</a>
{
typedef State state;
typedef Operation operation;
};
</pre>
</div>
<div class="section" id="inserters-description">
<div class="section" id="id485">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>A general-purpose model of the <a class="reference" href="./inserter.html">Inserter</a> concept.</p>
<p>A general-purpose model of the <a class="reference internal" href="./inserter.html">Inserter</a> concept.</p>
</div>
<div class="section" id="inserters-header">
<div class="section" id="id486">
<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
<pre class="literal-block">
#include &lt;<a href="../../../../boost/mpl/inserter.hpp" class="header">boost/mpl/inserter.hpp</a>&gt;
</pre>
</div>
<div class="section" id="inserters-model-of">
<div class="section" id="id487">
<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
<p><a class="reference" href="./inserter.html">Inserter</a></p>
<p><a class="reference internal" href="./inserter.html">Inserter</a></p>
</div>
<div class="section" id="inserters-parameters">
<div class="section" id="id488">
<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="19%" />
<col width="38%" />
<col width="43%" />
</colgroup>
<thead valign="bottom">
<tr><th>Parameter</th>
<th>Requirement</th>
<th>Description</th>
<tr><th class="head">Parameter</th>
<th class="head">Requirement</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
@@ -64,62 +61,63 @@ struct <a href="./inserter.html" class="identifier">inserter</a>
<td>A initial state.</td>
</tr>
<tr><td><tt class="literal"><span class="pre">Operation</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
<td>An output operation.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-expression-semantics">
<div class="section" id="id489">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<p>The semantics of an expression are defined only
where they differ from, or are not defined in <a class="reference" href="./inserter.html">Inserter</a>.</p>
<p>For any binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt> and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<table border="1" class="table">
where they differ from, or are not defined in <a class="reference internal" href="./inserter.html">Inserter</a>.</p>
<p>For any binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a> <tt class="literal"><span class="pre">op</span></tt> and arbitrary type <tt class="literal"><span class="pre">state</span></tt>:</p>
<table border="1" class="docutils table">
<colgroup>
<col width="39%" />
<col width="61%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="literal"><span class="pre"><a href="./inserter.html" class="identifier">inserter</a>&lt;op,state&gt;</span></tt></td>
<td>An <a class="reference" href="./inserter.html">Inserter</a>.</td>
<tr><td><tt class="literal"><span class="pre"><a href="./inserter-class.html" class="identifier">inserter</a>&lt;op,state&gt;</span></tt></td>
<td>An <a class="reference internal" href="./inserter.html">Inserter</a>.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserters-complexity">
<div class="section" id="id490">
<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3>
<p>Amortized constant time.</p>
</div>
<div class="section" id="inserters-example">
<div class="section" id="id491">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
template&lt; typename N &gt; struct is_odd : <a href="./bool.html" class="identifier">bool_</a>&lt; ( N::value % 2 ) &gt; {};
typedef <a href="./copy.html" class="identifier">copy</a>&lt;
<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt;
, <a href="./inserter.html" class="identifier">inserter</a>&lt; // a filtering '<a href="./push-back.html" class="identifier">push_back</a>' <a href="./inserter.html" class="identifier">inserter</a>
, <a href="./inserter-class.html" class="identifier">inserter</a>&lt; // a filtering '<a href="./push-back.html" class="identifier">push_back</a>' <a href="./inserter-class.html" class="identifier">inserter</a>
<a href="./vector.html" class="identifier">vector</a>&lt;&gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_odd&lt;_2&gt;, <a href="./push-back.html" class="identifier">push_back</a>&lt;_1,_2&gt;, _1 &gt;
, <a href="./if.html" class="identifier">if_</a>&lt; is_odd&lt;<a href="./placeholders.html" class="identifier">_2</a>&gt;, <a href="./push-back.html" class="identifier">push_back</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_2</a>&gt;, <a href="./placeholders.html" class="identifier">_1</a> &gt;
&gt;
&gt;::type odds;
<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>&lt; odds, <a href="./vector-c.html" class="identifier">vector_c</a>&lt;int,1,3,5,7,9&gt;, <a href="./equal-to.html" class="identifier">equal_to</a>&lt;_,_&gt; > ));
</pre>
</div>
<div class="section" id="inserters-see-also">
<div class="section" id="id492">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="reference" href="./inserter.html">Inserter</a>, <a class="reference" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="refentry reference" href="./front-inserter.html"><tt class="refentry literal"><span class="pre">front_inserter</span></tt></a>, <a class="refentry reference" href="./back-inserter.html"><tt class="refentry literal"><span class="pre">back_inserter</span></tt></a></p>
<!-- modtime: November 15, 2004 06:46:20 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./inserter.html">Inserter</a>, <a class="reference internal" href="./reversible-algorithm.html">Reversible Algorithm</a>, <a class="reference internal" href="./front-inserter.html">front_inserter</a>, <a class="reference internal" href="./back-inserter.html">back_inserter</a></p>
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./front-inserter.html" class="navigation-link">Prev</a>&nbsp;<a href="./iteration-algorithms.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./front-inserter.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./inserters.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>
+33 -35
View File
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
<!-- Software License, Version 1.0. (See accompanying -->
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
<title>The MPL Reference Manual: Inserter</title>
<link rel="stylesheet" href="../style.css" type="text/css" />
</head>
@@ -15,35 +12,35 @@
<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./algorithms.html" class="navigation-link">Algorithms</a> / <a href="./algorithms-concepts.html" class="navigation-link">Concepts</a> / <a href="./inserter.html" class="navigation-link">Inserter</a></td>
</tr></table><div class="header-separator"></div>
<div class="section" id="inserter">
<h1><a class="toc-backref" href="./algorithms-concepts.html#id390" name="inserter">Inserter</a></h1>
<div class="section" id="inserter-description">
<h1><a class="toc-backref" href="./algorithms-concepts.html#id1462">Inserter</a></h1>
<div class="section" id="id454">
<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
<p>An <a class="reference" href="./inserter.html">Inserter</a> is a compile-time substitute for STL <a class="reference" href="http://www.sgi.com/tech/stl/OutputIterator.html" target="_top">Output Iterator</a>.
Under the hood, it's simply a type holding
two entities: a <em>state</em> and an <em>operation</em>. When passed to a
<a class="reference" href="./transformation-algorithms.html">transformation algorithm</a>, the inserter's binary operation is
invoked for every element that would normally be written into the
<p>An <a class="reference internal" href="./inserter.html">Inserter</a> is a compile-time substitute for STL <a class="reference external" href="http://www.sgi.com/tech/stl/OutputIterator.html" target="_top">Output Iterator</a>.
Under the hood, it's simply a type holding
two entities: a <em>state</em> and an <em>operation</em>. When passed to a
<a class="reference internal" href="./transformation-algorithms.html">transformation algorithm</a>, the inserter's binary operation is
invoked for every element that would normally be written into the
output iterator, with the element itself (as the second
argument) and the result of the previous operation's invocation — or,
for the very first element, the inserter's initial state.</p>
<p>Technically, instead of taking a single inserter parameter,
<a class="reference" href="./transformation-algorithms.html">transformation algorithms</a> could accept the state and the &quot;output&quot;
operation separately. Grouping these in a single parameter entity,
however, brings the algorithms semantically and syntactically closer to
their STL counterparts, significantly simplifying many of the common
<a class="reference internal" href="./transformation-algorithms.html">transformation algorithms</a> could accept the state and the &quot;output&quot;
operation separately. Grouping these in a single parameter entity,
however, brings the algorithms semantically and syntactically closer to
their STL counterparts, significantly simplifying many of the common
use cases.</p>
</div>
<div class="section" id="valid-expressions">
<h3><a class="subsection-title" href="#valid-expressions" name="valid-expressions">Valid expressions</a></h3>
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">in</span></tt> is a model of <a class="reference" href="./inserter.html">Inserter</a>.</p>
<table border="1" class="table">
<h3>Valid expressions</h3>
<p>In the following table and subsequent specifications, <tt class="literal"><span class="pre">in</span></tt> is a model of <a class="reference internal" href="./inserter.html">Inserter</a>.</p>
<table border="1" class="docutils table">
<colgroup>
<col width="43%" />
<col width="57%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Type</th>
<tr><th class="head">Expression</th>
<th class="head">Type</th>
</tr>
</thead>
<tbody valign="top">
@@ -51,21 +48,21 @@ use cases.</p>
<td>Any type</td>
</tr>
<tr><td><tt class="literal"><span class="pre">in::operation</span></tt></td>
<td>Binary <a class="reference" href="./lambda-expression.html">Lambda Expression</a></td>
<td>Binary <a class="reference internal" href="./lambda-expression.html">Lambda Expression</a></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="inserter-expression-semantics">
<div class="section" id="id455">
<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
<table border="1" class="table">
<table border="1" class="docutils table">
<colgroup>
<col width="35%" />
<col width="65%" />
</colgroup>
<thead valign="bottom">
<tr><th>Expression</th>
<th>Semantics</th>
<tr><th class="head">Expression</th>
<th class="head">Semantics</th>
</tr>
</thead>
<tbody valign="top">
@@ -78,33 +75,34 @@ use cases.</p>
</tbody>
</table>
</div>
<div class="section" id="inserter-example">
<div class="section" id="id456">
<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
<pre class="literal-block">
typedef <a href="./transform.html" class="identifier">transform</a>&lt;
<a href="./range-c.html" class="identifier">range_c</a>&lt;int,0,10&gt;
, <a href="./plus.html" class="identifier">plus</a>&lt;_1,_1&gt;
, <a href="./plus.html" class="identifier">plus</a>&lt;<a href="./placeholders.html" class="identifier">_1</a>,<a href="./placeholders.html" class="identifier">_1</a>&gt;
, <a href="./back-inserter.html" class="identifier">back_inserter</a>&lt; vector0&lt;&gt; &gt;
&gt;::type result;
</pre>
</div>
<div class="section" id="inserter-models">
<div class="section" id="id457">
<h3><a class="subsection-title" href="#models" name="models">Models</a></h3>
<ul class="simple">
<li><a class="refentry reference" href="./inserters-inserter.html"><tt class="refentry literal"><span class="pre">inserter</span></tt></a></li>
<li><a class="refentry reference" href="./front-inserter.html"><tt class="refentry literal"><span class="pre">front_inserter</span></tt></a></li>
<li><a class="refentry reference" href="./back-inserter.html"><tt class="refentry literal"><span class="pre">back_inserter</span></tt></a></li>
<li><a class="reference internal" href="./inserter-class.html">inserter (class)</a></li>
<li><a class="reference internal" href="./front-inserter.html">front_inserter</a></li>
<li><a class="reference internal" href="./back-inserter.html">back_inserter</a></li>
</ul>
</div>
<div class="section" id="inserter-see-also">
<div class="section" id="id458">
<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
<p><a class="reference" href="./algorithms.html">Algorithms</a>, <a class="reference" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="refentry reference" href="./inserters-inserter.html"><tt class="refentry literal"><span class="pre">inserter</span></tt></a>, <a class="refentry reference" href="./front-inserter.html"><tt class="refentry literal"><span class="pre">front_inserter</span></tt></a>, <a class="refentry reference" href="./back-inserter.html"><tt class="refentry literal"><span class="pre">back_inserter</span></tt></a></p>
<!-- modtime: November 13, 2004 01:42:40 +0000 -->
<p><a class="reference internal" href="./algorithms.html">Algorithms</a>, <a class="reference internal" href="./transformation-algorithms.html">Transformation Algorithms</a>, <a class="reference internal" href="./inserter-class.html">inserter (class)</a>, <a class="reference internal" href="./front-inserter.html">front_inserter</a>, <a class="reference internal" href="./back-inserter.html">back_inserter</a></p>
<!-- Algorithms/Concepts//Reversible Algorithm -->
</div>
</div>
<div class="footer-separator"></div>
<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./algorithms-concepts.html" class="navigation-link">Prev</a>&nbsp;<a href="./reversible-algorithm.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./reversible-algorithm.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./algorithms-concepts.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
</tr></table></body>
<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
</html>

Some files were not shown because too many files have changed in this diff Show More