Bonjour,
En C++ pour remplir un conteneur, il y a les fonctions std::fill() et std::fill_n(), celles ci gèrent un remplissage dont le type est vérifié.
On peut "forcer" une écriture en mode octet, mais c'est extrêmement déconseillé, ça donnerait le code :
std::fill_n( static_cast<char*>(&BI) , sizeof BI , 0 ); // écriture forcée sous forme d'octets
Le code ci-dessus devrait être refusé par le compilateur exigeant un reinterpret_cast<>() au lieu du static_cast<>() ce qui montre bien l'aspect plus très très "unsafe".
Sinon pour un code propre pour un objet du type std::array<TypeQuelconque,N> ou un TypeQuelconque[N] ou même un ConteneurQuelconque<TypeQuelconque>, on peut écrire un code qui lui est tout à fait sain :
1 2 3
| using std::begin;
using std::end;
std::fill( begin(BI) , end(BI) , ValeurQuelconque ); // remplit de 0 le tableau BI |
Partager