/ / C ++, termín / idiom pre programovanie pomocou šablóny - c ++, šablóny, idiómy, termín

C ++, pojem / idiom pre programovanie pomocou šablóny - c ++, šablóny, idiomy, termín

Stále čítam tento výraz:

  1. programovanie šablón
  2. všeobecného programovania
  3. meta-programovanie
  4. možno iný idiom / výraz ..

pre ktorý kód c ++, ktorý používa šablónu, ktorý z nich je správnym alebo presnejším termínom?

odpovede:

15 pre odpoveď č. 1

Pokiaľ viem:

  1. Programovanie šablón</ Strong> odkazuje iba na klasické „programovanie so šablónami“, t. j. „Mám funkciu / triedu, ktorú chcem použiť s akýmkoľvek typom, iba ju urobím šablónou“.

    Môže sa tiež považovať za kategóriu „catch-all“, ktorá zahŕňa akúkoľvek techniku ​​programovania, ktorá využíva šablóny.

  2. Všeobecné programovanie</ Strong> možno synteticky opísať ako programovacie paradigma používané STL.

    Wikipedia to definuje ako

    štýl počítačového programovania, v ktorom sa algoritmy zapisujú v súvislosti s typmi, ktoré sa majú špecifikovať neskôr, ktoré sa potom v prípade potreby inicializujú pre konkrétne typy poskytované ako parametre

    IMHO, je lepšie povedať, že všetky kontajnerysú navrhnuté na použitie s akýmkoľvek typom (bez obetovania bezpečnosti typu) a algoritmy sú navrhnuté tak, aby boli dostatočne všeobecné na to, aby mohli pracovať na akomkoľvek type kontajnera (pokiaľ je rozumné ich používať, to znamená, že nemá zmysel triediť neusporiadaný kontajner).

    Všimni si všeobecného programovania (s touto definíciou) sa nevyžaduje použitie šablón, v skutočnosti sa to dá dosiahnuť dedičnosťou a dynamickým polymorfizmom (vďaka Benovi Voigtovi).

    Vo všeobecnosti by som to povedal programovanie šablón a všeobecného programovania čiastočne sa prekrývajú a mnoho ľudí používa tieto výrazy všeobecného programovania a programovanie šablón zamieňajú.

  3. Metaprogramovanie šablón</ Strong> je štýl programovania, v ktorom sa nachádzajú šablónypoužíva sa na vykonávanie výpočtov / rozhodnutí / kontrol v čase kompilácie, ktoré sa bežne nedajú vykonať bez šablón (statické tvrdenia, výpočty konštánt v čase kompilácie, ...).

    Takýto kód je často dosť vymyšlený, pretože C ++nebol navrhnutý pre tento štýl programovania (ktorý bol v skutočnosti „objavený“ neskôr) a môže sa zdať neznámym programátorom C ++ aj preto, že sa často priblíži funkčnému programovaniu (bez toho, aby na to mali pekné syntaktické prostriedky) namiesto dodržiavania imperatívnej paradigmy. bežne sa používa v C ++.


2 pre odpoveď č. 2

Zvyčajne sa označuje ako všeobecného programovania.

šablóna meta programovanie je niečo iné ako bežné použitie šablón, v typoch TMP sa manipuluje v čase kompilácie (pozri boost.Mpl).