ΠΠ°ΠΊ Π½Π° ΡΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ΠΎ Π½Π°Π½ΠΈΠΌΠ°ΡΡ Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π·Π½Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
Π Π½Π΅ ΡΠ΅Ρ
, ΠΊΡΠΎ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ β1.
#include <vector>
#include <numeric>
#include <iostream>
int average(const std::vector<int>& v) {
if (v.empty()) {
return 0;
}
return std::accumulate(v.begin(), v.end(), 0) / v.size();
}
int main() {
std::cout << average({-1,-1,-1});
}
ΠΡΠ»ΠΈ Π½Π΅ Π²Π΅ΡΠΈΡΡΡ, ΡΠΎ https://godbolt.org/ Π² ΠΏΠΎΠΌΠΎΡΡ.ΠΡΠ΄ΡΡΠΈ ΡΠΎΠ±ΡΠ°Π½ΠΎ GCC ΠΈΠ»ΠΈ Clang Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ x86-64 ΠΎΠ½ΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ: 1431655764.
ΠΡΠΎΠ½ΠΈΡ ΠΏΠΎΡΡΠΈΡΠΎΠ½ΠΈΠ΅ΠΉ, Π° Π²ΠΎΡ Π½Π΅ ΡΠΌΠ΅ΡΠ½ΠΎ Π½ΠΈ ΡΠ°Π·Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Clang-Tidy ΡΠ°ΠΊΠΎΠ³ΠΎ Β«Π½Π΅ Π»ΠΎΠ²ΠΈΡΒ» bugprone-narrowing-conversions.
(ΠΈΠ·Π²ΠΈΠ½ΡΡΡΡ Π·Π° ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½-Π ΠΈΡΡΡΠΈ ΡΠΈ-ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ Π² ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, Π½ΠΎ ΡΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅Π΅).
#ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ #C++ #Π‘++ #Cpp #programming #softdev #staticanalysis #ClangTidy @russian_mastodon@mastodon.social @Russia@3zi.ru