#pragma once #define _val(type) std::declval() #define exists(expr) void_t namespace iterator::detail { template using void_t = void; }