IA
Size: a a a
IA
АР
IA
АР
АР
O
add_method никогда не вызывается (—> шаблон не инстанциируется). Есть ли какой-то изящный способ это пофиксить? Можно конечно для типов с методами и типов без методов завести свой TypeInfoBuilder с/без add_method, потом их как-то отнаследовать чтобы не дублировать код, как-то решить проблему с возвращаемым типом билдера (через CRTP?)... Но все это выглядит дико громоздко. Есть ли какой-то более изящный способ? С enable_if или специализацией?m
add_method никогда не вызывается (—> шаблон не инстанциируется). Есть ли какой-то изящный способ это пофиксить? Можно конечно для типов с методами и типов без методов завести свой TypeInfoBuilder с/без add_method, потом их как-то отнаследовать чтобы не дублировать код, как-то решить проблему с возвращаемым типом билдера (через CRTP?)... Но все это выглядит дико громоздко. Есть ли какой-то более изящный способ? С enable_if или специализацией?enable_if есть if constexpr и концепты.m
if constexpr или концептах?static_assert, но это потребовало переноса member из nttp в аргументы функции. Мне не удалось придумать изящную реализацию оригинального интерфейса с использованием C++20.O
static_assert, но это потребовало переноса member из nttp в аргументы функции. Мне не удалось придумать изящную реализацию оригинального интерфейса с использованием C++20.NP
add_method никогда не вызывается (—> шаблон не инстанциируется). Есть ли какой-то изящный способ это пофиксить? Можно конечно для типов с методами и типов без методов завести свой TypeInfoBuilder с/без add_method, потом их как-то отнаследовать чтобы не дублировать код, как-то решить проблему с возвращаемым типом билдера (через CRTP?)... Но все это выглядит дико громоздко. Есть ли какой-то более изящный способ? С enable_if или специализацией?O
AK
std::string_view вместо const std::string& ?struct Foo {
std::string str;
std::string_view get_str() const {
return str;
}
};D
std::string_view вместо const std::string& ?struct Foo {
std::string str;
std::string_view get_str() const {
return str;
}
};const auto str = foo.get_str();AK
const auto str = foo.get_str();AF
АК
std::string_view вместо const std::string& ?struct Foo {
std::string str;
std::string_view get_str() const {
return str;
}
};АР
АР