#ifndef EMPATHY_IR_BRIDGE_H
#define EMPATHY_IR_BRIDGE_H
namespace empathy::ir
{
template< typename T >
struct Bridge
{};
template< typename T, typename... P >
const Term& GetValueType( P&&... params )
{
return Bridge< T >::Type( forward< P >( params )... );
}
template< typename T >
Value ToValue( T&& x )
{
using TT = remove_constref_t< T >;
return Bridge< TT >::ToValue( forward< T >( x ) );
}
template< typename TT, typename T >
Value ToValue( T&& x )
{
return Bridge< TT >::ToValue( forward< T >( x ) );
}
template< typename T >
auto FromValue( const Value& val )
{
return Bridge< T >::FromValue( val );
}
}
#endif