A C++ standard libraryben hol tudom megnézni a definíciókat? Pl. Az std::vector definícióját.
A forráskódjuk érdekel? A definíciók maguk mind a headerekben vannak, de a kód maga bináris már és statikusan van linkelve a kódhoz fordításkor.
Maga a forráskód itt van: [link]
A headerben nem csak deklaráció van?
Kizártnak tartom, hogy az iostream mindössze ennyiből álljon:
extern istream cin;
extern ostream cout;
extern ostream cerr;
extern ostream clog;
Mellesleg az std::vectort nem találom itt. Jobb híján az include mappában kerestem, mert az src mappában valami tök más van.
Nem. A vector template osztály, szóval nem lehet, hogy csak a bináris implementációt adják hozzá, kell a forrásdefiníció a headerbe.
Nálam ez a bits/stl_vector.h fájlban van (GCC 7.4.0). Ezt a sima vector header include-olja magába.
Valahogy így néz ki:
template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
class vector : protected _Vector_base<_Tp, _Alloc>
{
...
Visual studioban, ha leírom, hogy std::vector, jobb klikk rá és kiválasztom, hogy go to definition, akkor ebben a fájlban:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector
Ehhez a részhez ugrik:
// CLASS TEMPLATE vector
template<class _Ty,
class _Alloc = allocator<_Ty>>
class vector
: public _Vector_alloc<_Vec_base_types<_Ty, _Alloc>>
{ // varying size array of values
De pl. codeblocksban ilyesmit nem találtam.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!