Use
library IEEE;
use IEEE.std_logic_1164.all;
--- Quote Start ---
Les bibliothèques std_logic_arith, std_logic_signed et std_logic_unsigned, malgré leur nom, ne sont pas normalisées par l'IEEE et leur utilisation est fortement déconseillée. En effet, il est préférable de préciser explicitement le type de chaque vecteur sur lequel on fait une opération (SIGNED ou UNSIGNED) de manière à specifier son traitement arithmétique. Le comportement des opérations sur les types STD_LOGIC_VECTOR sera différent selon la bibliothèque appelée, ce qui rend leur utilisation hasardeuse.
--- Quote End ---
(Sorry it's french)
To resume, use unsigned or signed for arithmetic operations
Use
library IEEE;
use IEEE.std_logic_1164.all;
integer signals must be bounded if employed.
use integer for generic parameters.
Use sdt_logic, std_logic_vector for entity ports. compatibility reason.