Otóż ostatnio piszę program obsługujący pewne urządzenie elektroniczne.
Kilka słów opisu. Urządzenie to posiada kilka tysięcy rejestrów (wcale nie mówię że korzystam ze wszystkich :) ), z którego każdy, ma swój unikalny adres i swoją unikalną nazwę oraz odpowiada za jakieś tam zadanie. Rejestry te są niezmienne (adresy i nazwy) oraz większość z nich jest poukładana w logiczne bloki (np są 4 tryby pracy urządzenie gdzie każdy tryb ma dla siebie 100 rejestrów odpowiadających za ustawienia tego trybu)
Więc w aplikacji mam tablicę z nazwami rejestrów i ich adresami oraz mam funkcję która te rejestry uzupełnia (dodaje w odpowiedniej kolejności i nadaje im nazwy).
Teraz w niektórych przypadkach bardzo wygodnie jest używać NAZW tych rejestrów, więc muszę mieć funkcję
int getAdr( const char* regname )
zwracającą adres rejestru wyszukując nazwy w tablicy zawierającej informacje o nich. Mam nadzieję że do tej pory wszystko jest zrozumiałe :)
Ale całkiem niedawno przeczytałem o możliwości obliczania pewnych wartości stałych podczas kompilacji (funkcje z dopiskiem constexpr) i teraz pytanie, czy dało by się uzupełnić tablicę wartościami i następnie w programie (w miejscach gdzie nazwa rejestru jest znana podczas kompilacji oczywiście) zmienić wywołanie funkcji wyszukującej tej nazwy na wynik, czyli po prostu ten wymagany adres? jeżeli tak, to co powinienem szukać (chodzi mi o jakieś przykłady, tutoriale, bo że informacji o samym constexpr to wiem)
Pozdrawiam zawisza :)