Rust: рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди/рд╢реЗрд╖ рдкреВрд░реНрдгрд╛рдВрдХрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬреБрд▓ре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

Google рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рддрд░реНрдХ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╕реНрдЯ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдпрд╛ Div рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛ рдХрд╣рддреЗ рд╣реИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред (рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрд░реНрде рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ / , checked_div , рдФрд░ wrapping_div рд╕рднреА рдПрдХ рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред) рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреНрд░рдорд┐рдд рд╣реЛрддрд╛ рд╣реИ / рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдХрднреА-рдХрднреА рдЧрдгрд┐рддреАрдп рд╡рд┐рднрд╛рдЬрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред (рдореИрдВ floor(self / other) рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдЪрд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде wrapping_div рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ред) рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реИ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

http://doc.rust-lang.org/reference.html#behavior -not-considered-unsafe 'рдУрд╡рд░рдлреНрд▓реЛ' рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░реИрдкрд┐рдВрдЧ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@steveklabnik

рдпрд╣ рдЧреЛрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВред рд╣рдо LLVM рдХреЗ sdiv , рдЬреЛ рд╢реВрдиреНрдп рдХреА рдУрд░ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рддрд╛ рд╣реИ (рдФрд░ srem рдХрд╛ рд▓рд╛рднрд╛рдВрд╢ рдХреЗ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рд╣реИ)ред рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ( wrapping_div рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ _lies_, рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдирдВрдд рдХреА рдУрд░ рд╣реИ)ред

рдпрд╣ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рднреА рдЫреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ/рдкреВрд░реНрдгрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dnsl48 picture dnsl48  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mcarton picture mcarton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SharplEr picture SharplEr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

modsec picture modsec  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

eddyb picture eddyb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ