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


Attachment: signature.asc
Description: This is a digitally signed message part.

Antwort per Email an