slice(); // (1)
slice(std::size_t start,
std::size_t length,
std::size_t stride); // (2)
slice(const slice&); // (3)
sliceオブジェクトの構築
sliceオブジェクトを次に示す通りの要素で初期化する。
- (1) :
- C++03 : 未規定
- C++11 :
slice(0, 0 ,0)と等価
- (2) : 初期位置
start、要素数length、間隔strideでスライスするsliceオブジェクトを構築する。 - (3) : コピーコンストラクタ。コピー元の
sliceオブジェクトと同じ初期位置、要素数、間隔でスライスするsliceオブジェクトを構築する。
パラメータ
start- スライスする初期位置。
length- スライスする要素数。
stride- スライスする間隔。
例
#include <valarray>
#include <iostream>
auto main()
-> int
{
std::slice s0;
constexpr auto start = 3;
constexpr auto length = 5;
constexpr auto stride = 7;
std::slice s1( start, length, stride );
std::slice s2( s1 );
auto print = []( const std::slice& s )
{ std::cout << &s << ": " << s.start() << " " << s.size() << " " << s.stride() << "\n"; }
;
print( s0 );
print( s1 );
print( s2 );
}
出力例
0x7fffe0c71c98: 0 0 0
0x7fffe0c71c70: 3 5 7
0x7fffe0c71c58: 3 5 7