Nimiavaruudet

nimiavaruuden koostumuksen käyttäminen

ohjelmoinnin parhaat käytännöt ehdottavat uusien tietojen tai toimintojen tallentamista järkevään, ainutlaatuiseen nimiavaruuteen aina, kun se on mahdollista. Tämän katsotaan olevan etu verrattuna kaiken jättämiseen maailmanlaajuiseen nimiavaruuteen, koska silloin nimihaku voidaan yksiselitteisesti ottaa käyttöön tai esittää, kuten yllä, symbolit mankeloidaan jatkuvasti ilman toistuvia etuliitteitä tai makroja jne.

tarkastellaan esimerkiksi projektia, joka määrittelee suurimman osan luokistaan namespace gtk. namespace gtknamespace std on mahdollista mukauttaa käyttämällä C++-ominaisuutta, jota kutsutaan nimikkoavaruuskoostumukseksi. Näin tapahtuu, jos käytetään-ilmoitus laitetaan amespace-määritelmä: tuotu symboli(t) saa tuoda thecurrently active namespace(s). Esimerkiksi:

namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}

tässä esimerkissä std::string saa tuodanamespace gtk. Tuloksena on, että käyttöstd::string sisällä nimiavaruus gtk voi vain käyttää string, ilman eksplisiittistä qualification.As lisäbonus,std::string ei tule tuoduksi maailmanlaajuiseen nimiavaruuteen. Lisäksi taaksepäin yhteensopivuudesta ja siirrettävyydestä voidaan tehdä monimutkaisempia järjestelyjä, jolloinusing-ilmoitukset voidaan kääriä makroihin, jotka on asetettu autoconf-testien perusteella joko ”” tai using std::string; (riippuen siitä, onko järjestelmällä std:: liibstdc++ vai ei). (ideoita willewellyltä ja Karl Nelsonilta)

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post TV: n kulta-aika on ohi
Next post Jaksoseurantasovellukset eivät naisille