Question Details

No question body available.

Tags

c++ types compiler-errors constexpr

Answers (1)

June 30, 2026 Score: 6 Rep: 230,549 Quality: High Completeness: 80%

std::variant with std::visit might do the dispatch:

using cudadatatypevar = std::variant<
    std::typeidentity,
    std::typeidentity,
    std::typeidentity,
    std::typeidentity
>;

cudadatatypevar selectcudadatatype(MYDatatype dtype) { switch (dtype) { case MYF32: return std::typeidentity{}; case MYF64: return std::typeidentity{}; case MYC32: return std::typeidentity{}; case MYC64: return std::typeidentity{}; } throw std::runtimeerror("Unsuported value"); }

void dispatch(cudadatatypevar var1, cudadatatypevar var2, cudadatatypevar var3) { std::visit([](std::typeidentity, std::typeidentity, std::typeidentity) { sometemplatefunction(); }, var1, var2, var3); }

void dispatch(MYDatatype t1, MYDatatype t2, MYDatatype t3) { dispatch(selectcudadatatype(t1), selectcudadatatype(t2), selectcudadatatype(t3)); }

Demo