The well-formed program below fails to compile because the slice_array copy assignment operator is declared private:
$ cat z.cpp && make z
#include <valarray>
int main ()
{
std::valarray<int> va (10);
std::slice_array<int> sa (va [std::slice (0, 1, 1)]);
sa = sa;
}
gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include -I/build/sebor/gcc-4.1.0-11s/include -I/build/sebor/dev/stdlib/examples/include -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long z.cpp
/build/sebor/dev/stdlib/include/valarray: In function 'int main()':
/build/sebor/dev/stdlib/include/valarray:890: error: 'std::slice_array<_TypeT>& std::slice_array<_TypeT>::operator=(const std::slice_array<_TypeT>&) [with _TypeT = int]' is private
z.cpp:7: error: within this context
make: *** [z.o] Error 1