proxy

Concept inplace_proxiable_target

template <class T, class F>
concept inplace_proxiable_target = proxiable<inplace-ptr<T>, F>;

See make_proxy_inplace for the definition of the exposition-only class template inplace-ptr.

Example

#include <array>

#include "proxy.h"

// By default, the maximum pointer size defined by pro::facade_builder
// is 2 * sizeof(void*). This value can be overridden by `restrict_layout`.
struct Any : pro::facade_builder::build {};

int main() {
  // sizeof(int) is usually not greater than sizeof(void*) for modern
  // 32/64-bit compilers
  static_assert(pro::inplace_proxiable_target<int, Any>);

  // sizeof(std::array<int, 100>) is usually greater than 2 * sizeof(void*)
  static_assert(!pro::inplace_proxiable_target<std::array<int, 100>, Any>);
}

See Also