std::declval
- Current clang disallows any invocation of wrong-side functions even under context with type-inspection only. Work around that by adding a variant of `std::decl` with `__device__` attribute.