You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.8 KiB

#pragma once
#include "actiongenintfile.h"
#include "actioninfo.h"
#include "actiontsc.h"
#include "actionuv.h"
#include "data.h"
2 years ago
using michlib::errmessage;
template<class T, ActionID id> consteval bool MustSup()
2 years ago
{
static_assert(IsActionSupported<T, id>);
return true;
};
constexpr bool NEMOsup =
MustSup<NEMOData, ActionID::INFO>() && MustSup<NEMOData, ActionID::TSC>() && MustSup<NEMOData, ActionID::UV>() && MustSup<NEMOData, ActionID::GENINTFILE>();
constexpr bool NEMOBIOsup = MustSup<NEMOBIOData, ActionID::INFO>() && MustSup<NEMOBIOData, ActionID::TSC>();
constexpr bool HYCOMsup =
MustSup<HYCOMData, ActionID::INFO>() && MustSup<HYCOMData, ActionID::TSC>() && MustSup<HYCOMData, ActionID::UV>() && MustSup<HYCOMData, ActionID::GENINTFILE>();
constexpr bool AVISOsup =
MustSup<AVISOData, ActionID::INFO>() && MustSup<AVISOData, ActionID::TSC>() && MustSup<AVISOData, ActionID::UV>() && MustSup<AVISOData, ActionID::GENINTFILE>();
constexpr bool AVISOLsup = MustSup<AVISOLOCALData, ActionID::INFO>() && MustSup<AVISOLOCALData, ActionID::TSC>() && MustSup<AVISOLOCALData, ActionID::UV>() &&
MustSup<AVISOLOCALData, ActionID::GENINTFILE>();
constexpr bool BINFILEsup = MustSup<BINFILEData, ActionID::INFO>() && MustSup<BINFILEData, ActionID::TSC>() && MustSup<BINFILEData, ActionID::UV>();
template<class T, ActionID id> static constexpr bool DisableAction = false;
// Exceptions
template<> constexpr bool DisableAction<BINFILEData, ActionID::GENINTFILE> = true;
template<> constexpr bool DisableAction<MODISBINLOCALData, ActionID::UV> = true;
template<> constexpr bool DisableAction<MODISBINLOCALData, ActionID::GENINTFILE> = true;
template<> constexpr bool DisableAction<NEMOBIOData, ActionID::UV> = true;
template<> constexpr bool DisableAction<NEMOBIOData, ActionID::GENINTFILE> = true;