template as

This commit is contained in:
Thomas Krijnen
2026-01-10 11:03:26 +01:00
parent b66b04b001
commit 991556fbe3
2 changed files with 8 additions and 8 deletions
@@ -90,18 +90,18 @@ auto get_related(T t, F f, G g) {
std::vector<V> acc;
for (auto& u : li) {
try {
auto vs = (u.as<U>().*g)();
auto vs = (u.template as<U>().*g)();
if constexpr (std::is_base_of_v<express::Base, decltype(vs)>) {
if (auto vv = vs.as<V>()) {
if (auto vv = vs.template as<V>()) {
acc.push_back(vv);
}
} else if constexpr (std::is_base_of_v<express::Select, decltype(vs)>) {
if (auto vv = vs.concrete().as<V>()) {
if (auto vv = vs.concrete().template as<V>()) {
acc.push_back(vv);
}
} else {
for (auto& v : vs) {
if (auto vv = v.as<V>()) {
if (auto vv = v.template as<V>()) {
acc.push_back(vv);
}
}
@@ -222,18 +222,18 @@ auto get_related(T t, F f, G g) {
std::vector<V> acc;
for (auto& u : li) {
try {
auto vs = (u.as<U>().*g)();
auto vs = (u.template as<U>().*g)();
if constexpr (std::is_base_of_v<express::Base, decltype(vs)>) {
if (auto vv = vs.as<V>()) {
if (auto vv = vs.template as<V>()) {
acc.push_back(vv);
}
} else if constexpr (std::is_base_of_v<express::Select, decltype(vs)>) {
if (auto vv = vs.concrete().as<V>()) {
if (auto vv = vs.concrete().template as<V>()) {
acc.push_back(vv);
}
} else {
for (auto& v : vs) {
if (auto vv = v.as<V>()) {
if (auto vv = v.template as<V>()) {
acc.push_back(vv);
}
}