[/ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) / / 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) /] [section:ConvertibleToConstBuffer Convertible to const buffer requirements] A type that meets the requirements for convertibility to a const buffer must meet the requirements of `CopyConstructible` types (C++ Std, 20.1.3), and the requirements of `Assignable` types (C++ Std, 23.1). In the table below, `X` denotes a class meeting the requirements for convertibility to a const buffer, `a` and `b` denote values of type `X`, and `u`, `v` and `w` denote identifiers. [table ConvertibleToConstBuffer requirements [[expression][postcondition]] [ [`` const_buffer u(a); const_buffer v(a); ``] [`` buffer_cast(u) == buffer_cast(v) && buffer_size(u) == buffer_size(v) ``] ] [ [`` const_buffer u(a); const_buffer v = a; ``] [`` buffer_cast(u) == buffer_cast(v) && buffer_size(u) == buffer_size(v) ``] ] [ [`` const_buffer u(a); const_buffer v; v = a; ``] [`` buffer_cast(u) == buffer_cast(v) && buffer_size(u) == buffer_size(v) ``] ] [ [`` const_buffer u(a); const X& v = a; const_buffer w(v); ``] [`` buffer_cast(u) == buffer_cast(w) && buffer_size(u) == buffer_size(w) ``] ] [ [`` const_buffer u(a); X v(a); const_buffer w(v); ``] [`` buffer_cast(u) == buffer_cast(w) && buffer_size(u) == buffer_size(w) ``] ] [ [`` const_buffer u(a); X v = a; const_buffer w(v); ``] [`` buffer_cast(u) == buffer_cast(w) && buffer_size(u) == buffer_size(w) ``] ] [ [`` const_buffer u(a); X v(b); v = a; const_buffer w(v); ``] [`` buffer_cast(u) == buffer_cast(w) && buffer_size(u) == buffer_size(w) ``] ] ] [endsect]