2002-09-16 19:25:33 +00:00
<!doctype html public "-//ietf//dtd html//en">
2003-03-12 13:29:12 +00:00
< html >< head >< title > boost::mpl::at_c</ title >
2002-09-16 19:25:33 +00:00
< link rel = "stylesheet" href = "../mpl_wiki.css" >
</ head >< body bgcolor = "white" >
2003-03-12 13:29:12 +00:00
< h1 >< a href = "../Table_of_Contents.html" >< img src = "../mpl_logo.jpg" alt = "[Home]" border = 0 align = "right" ></ a > at_c</ h1 >< h3 > Synopsis</ h3 >
2002-09-16 19:25:33 +00:00
< p >
< pre >
template<
2003-03-12 13:29:12 +00:00
typename Sequence
, long n
2002-09-16 19:25:33 +00:00
>
struct at_c
{
typedef < em > unspecified</ em > type;
};
</ pre >
< p >
< h3 > Description</ h3 >
< p >
2003-03-12 13:29:12 +00:00
Returns a type identical to the < code > n</ code > -th element from the beginning of the sequence. < code > at_c< Sequence,n> ::type</ code > is a shorcut notation for < code > at< Sequence, integral_c< long,n> > ::type</ code > .
2002-09-16 19:25:33 +00:00
< p >
< h3 > Definition</ h3 >
< p >
< pre >
2003-03-12 13:29:12 +00:00
#include "< a href = "../../../../../boost/mpl/at.hpp" > boost/mpl/at.hpp</ a > "
2002-09-16 19:25:33 +00:00
</ pre >
< p >
< h3 > Parameters</ h3 >
< table border = "1" >
< tr >< th > Parameter </ th >< th > Requirement </ th >< th > Description </ th ></ tr >
< tr >< td >< code > Sequence</ code ></ td >< td > A model of < a href = "../Forward_Sequence.html" > Forward Sequence</ a ></ td >< td > A sequence being examined. </ td ></ tr >
2003-03-12 13:29:12 +00:00
< tr >< td >< code > n</ code ></ td >< td > An compile-time integral constant</ td >< td > An offset from the beginning of the sequence that specifies the element to be retrieved. </ td ></ tr >
2002-09-16 19:25:33 +00:00
</ table >
< p >
< h3 > Expression semantics</ h3 >
< p >
< table border = "1" >
< tr >< th > Expression </ th >< th > Expression type </ th >< th > Precondition </ th >< th > Semantics </ th >< th > Postcondition </ th ></ tr >
2003-03-12 13:29:12 +00:00
< tr >< td >< code > typedef at_c< Sequence,n> ::type t;</ code ></ td >< td > A type</ td >< td >< code > 0 < = n < size< Sequence> ::type::value</ code ></ td >< td > Equivalent to < code > typedef at< Sequence, integral_c< long,n> > ::type t;</ code ></ td >< td ></ td ></ tr >
2002-09-16 19:25:33 +00:00
</ table >
< p >
< h3 > Complexity</ h3 >
< p >
Depends on the implementation of the particular sequence it is applied to. Linear in the worst case, or amortized constant time.
< p >
< h3 > Example</ h3 >
< p >
< pre >
typedef < a href = "../Reference/range_c.html" > range_c</ a > < long,10,50> range;
2003-03-12 13:29:12 +00:00
BOOST_STATIC_ASSERT(at_c< range,0> ::type::value == 10);
BOOST_STATIC_ASSERT(at_c< range,10> ::type::value == 20);
BOOST_STATIC_ASSERT(at_c< range,40> ::type::value == 50);
2002-09-16 19:25:33 +00:00
</ pre >
< p >
< h3 > See also</ h3 >
< p >
< a href = "../Forward_Sequence.html" > Forward Sequence</ a > , < code >< a href = "../Reference/at.html" > at</ a ></ code > , < code >< a href = "../Reference/front.html" > front</ a ></ code > , < code >< a href = "../Reference/back.html" > back</ a ></ code >
< p >< hr >
2003-03-12 13:29:12 +00:00
< a href = "../Table_of_Contents.html" > Table of Contents</ a >< br > Last edited October 21, 2002 4:09 am</ body ></ html >