Stranica: 1/1.

[C++] Samo jedna naredba iz library-a

Postano: 24 pro 2015, 10:26
Postao/la PunkBastard
Pozdrav,
trebam pomoć sa gore navedenim problemom. Trebao bih samo jednu naredbu iz librarya pa mi nema smisla uvoziti cijeli library, trebam nešto kao ovo u C#:

Kod: Označi sve

System.Collections.Generic.List<T>();
Note: Ne treba mi lista, to je samo primjer, trebam iz "cstring" naredbu "strtok".

Re: [C++] Samo jedna naredba iz library-a

Postano: 24 pro 2015, 11:28
Postao/la stefan
To baš i ne možeš napraviti u C++-u "na pravi način".
Možeš pomoću "trikova", npr. da wrapaš tu funkciju..
Ali pitanje je da li ti uopće to treba...

Što bi točno želio postići?

Re: [C++] Samo jedna naredba iz library-a

Postano: 24 pro 2015, 12:27
Postao/la PunkBastard
U header fileovima nije baš poželjno imati include pa to pokušavam izbjeći.

Re: [C++] Samo jedna naredba iz library-a

Postano: 24 pro 2015, 17:05
Postao/la jurastublic
Pa nemoj onda koristiti #include <cstring>. Samo deklariraj tu jednu funkciju tako da kompajler zna s čime ima posla.
Recimo,

Kod: Označi sve

char * strtok ( char * str, const char * delimiters );
(ovu sam deklaraciju sada prekopirao s interneta. Provjeri je li tvoja ista)

Ako se bojiš da će ti program narasti zbog uključivanja čitave biblioteke, nemaj straha. Biblioteke su napravljene tako da se uključuju samo pozvane funkcije jer je svaka funkcija u biblioteci posebni objektni fajl. Ako su biblioteke dijeljene a ne statičke, još bolje.

Edit: to možda ne bu išlo zato jer strtok koristi druge funkcije iz te biblioteke ali možeš ga #includati bez brige ako dodaš #ifndef i #define.

Re: [C++] Samo jedna naredba iz library-a

Postano: 24 pro 2015, 18:41
Postao/la PunkBastard
"strtok" se ne može forward deklarirati (bar mislim). Nije da imam brige oko rasta programa uključivanjem libova, ali stvarno nema smisla uključivati gomile stvari u headere pa zato moje pitanje.

#ifndef/#ifdef je dobra ideja, ty.