mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
27 lines
609 B
C++
27 lines
609 B
C++
#pragma once
|
|
|
|
#include "PointerWrapper.hpp"
|
|
#include <ostream>
|
|
|
|
namespace shader::ir {
|
|
class NameStorage;
|
|
template <typename T> struct PrintableWrapper : PointerWrapper<T> {
|
|
using PointerWrapper<T>::PointerWrapper;
|
|
using PointerWrapper<T>::operator=;
|
|
|
|
void print(std::ostream &os, NameStorage &ns) const {
|
|
if constexpr (requires { this->impl->print(os, ns); }) {
|
|
this->impl->print(os, ns);
|
|
} else {
|
|
this->impl->print(os);
|
|
}
|
|
}
|
|
|
|
void print(std::ostream &os) const
|
|
requires requires { this->impl->print(os); }
|
|
{
|
|
this->impl->print(os);
|
|
}
|
|
};
|
|
} // namespace shader::ir
|