CD
struct Big {};
template <typename T, std::size_t N>
void foo(const T (&args)[N]) {
(void)args;
}
int main() {
foo({ Big{}, Big{} });
}
я так понимаю, вот это будет работать
Size: a a a
CD
struct Big {};
template <typename T, std::size_t N>
void foo(const T (&args)[N]) {
(void)args;
}
int main() {
foo({ Big{}, Big{} });
}
KO
CD
struct Big {edit: а, нет, всё норм
Big() = default;
Big(Big const&) = delete;
Big(Big &&) = delete;
};
template <typename T, std::size_t N>
void foo(T (&&args)[N]) {
(void)args;
}
int main() {
foo({ Big{}, Big{} });
}
KO
CD
KO
KO
CD
CD
KO
AN
struct Big {edit: а, нет, всё норм
Big() = default;
Big(Big const&) = delete;
Big(Big &&) = delete;
};
template <typename T, std::size_t N>
void foo(T (&&args)[N]) {
(void)args;
}
int main() {
foo({ Big{}, Big{} });
}
IZ
CD
KO
KO
CD
KO
CD
CD
void bar(Big & big) {
(void)big;
}
template <typename... Args>
void foo(Args&&... args) {
((void)bar(args), ...);
}