V
Size: a a a
V
V
В
В
NL
using namespace std;
template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
return container[index];
}
int main() {
vector<int> v(10,0);
nth_element(v,1) = 10;
auto x = nth_element(v,1);
for (auto &i:v) cout << i << '\n';
cout << "x == " << x << '\n';
}
decltype(auto)
. Казалось бы прекрасный код, но если пользователь вызовет неauto x = nth_element(v,1);
auto x = nth_element(vector<int>{1,2,3},1);
Т8
BD
using namespace std;
template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
return container[index];
}
int main() {
vector<int> v(10,0);
nth_element(v,1) = 10;
auto x = nth_element(v,1);
for (auto &i:v) cout << i << '\n';
cout << "x == " << x << '\n';
}
decltype(auto)
. Казалось бы прекрасный код, но если пользователь вызовет неauto x = nth_element(v,1);
auto x = nth_element(vector<int>{1,2,3},1);
К
template <typename T, size_t N>
decltype(auto) get_arr_size(T(&)[N]) { return N; }
К
NL
template <typename T, size_t N>
decltype(auto) get_arr_size(T(&)[N]) { return N; }
BD
using namespace std;
template <typename T, typename T2>
decltype(auto) nth_element(T& container, T2 index) {
return container[index];
}
int main() {
vector<int> v(10,0);
nth_element(v,1) = 10;
auto x = nth_element(v,1);
for (auto &i:v) cout << i << '\n';
cout << "x == " << x << '\n';
}
decltype(auto)
. Казалось бы прекрасный код, но если пользователь вызовет неauto x = nth_element(v,1);
auto x = nth_element(vector<int>{1,2,3},1);
template <typename T, typename T2>
auto& nth_element(T& container, T2 index) {
return container[index];
}
Т8
if constexpr
и о static_assert
?BD
if constexpr
и о static_assert
?BD
NL
if constexpr
и о static_assert
?Т8
Ct
Т8
Т8