Re: Rückgabe von mehrdimensionalem String in C++
Jeffrey Kelling <[email protected]>
| Newsgroups | gmane.user-groups.linux.dresden |
|---|---|
| Message-ID | <6443523.4vTCxPXJkl@toruk> |
Hallo.
> Nun kenn ich aus Perl die Vorzüge von "Hashes". Darin lassen sich sehr
> gut diese Informationen speichern und mit den "keys" die "values" oder
> mit den "values" die "Keys" abrufen.
Eine Hasmap ha die STL auch:
https://en.cppreference.com/w/cpp/container/unordered_map
> D.h. auch, dass ich nat. weiss, wie groß der Datenraum max. ist. Hier:
> 40-Pins -> 40-Werte (abzügl. 3,3V, 5V, GND-Pins usw.). Ein dynamisch
> angepasster Vector ist nat. wahrscheinlich sinnvoller. Vectoren habe ich
> auch schon im Code und habe mir mal angesehen, wie man eigene "Struct"'s
> anlegt. Kommt den Perl-Hashes schon sehr nahe.
>
> Ich habe das jetzt so angelegt:
>
> --------
>
>
> struct csv_values {
> string pin_number;
> string in_out_name;
> string in_out_function;
>
> };
Es ist durchaus sinnvoll das was du über die Datan/Domäne weißt in Code zu
gießen.
> make
>
> g++ -c -o src/lib/init_hw.o src/lib/init_hw.cpp
> src/lib/init_hw.cpp:In member function ‘void ZEROHW::init_hw(const
> std::vector<std::__cxx11::basic_string<char> >&)’:
> src/lib/init_hw.cpp:52:69:error: use of ‘auto
> READCSV::read_config_files(const string&)’ before deduction of ‘auto’
> 52 | auto pin_defs =
> read_csv.read_config_files(file_names[0]);
> | ^
> make: *** [<eingebaut>: src/lib/init_hw.o] Fehler 1
Hast du vllt die Funktion mit `auto` Rückgabetyp in einem Header nur
deklariert, aber nicht definiert? `auto` geht nur, wenn der Compiler beim
Aufruf auch sieht was in der Funktion zurückgegeben wird, wenn sie als auf
irgendeineweise inline bzw. in der gleichen Kompiliereinheit definiert wird.
Wenn die Definition in einer separaten Einiheit ist, dann musst du explizit
sagen was der Rückgabetyp ist, also `std::vector<csv_values>`.
Viele Grüße
Jeffrey
signature.asc
(application/pgp-signature, 273 B)
-----BEGIN PGP SIGNATURE----- iJUEABMJAB0WIQRYQ1/8enc6816UjQWromRh24YiVQUCYnA30AAKCRCromRh24Yi VSG5AYCKRn2MWHxV47fn/ZcYnocxZZ2BOEnIbovgIszHXTfOELU3y7SQqOAXU7ll Y2cbmTsBfj6/dQhYMueP/i4lEJbEy8BiU3CuBI4PCQkfq4iqC5aaWCWzWmqHxV+I JpXTFrqYMQ== =EkI/ -----END PGP SIGNATURE-----