Wpis z mikrobloga

@nargil: chciałbym by były wywoływane raz, myślałem, że po to jest static const... że raz się dzieje, jest w jednym miejscu w pamięci i tam się wszystko odwołuje do niej. Jak zrobić w taki sposób?

@Kaczus2B: nie muszę w sumie, mógłbym je przekazywać z klasy do klasy w konstruktorach i robić chaos czyli robić to co robiłem zawsze... ale jeżeli od #!$%@? zależy w moim programie czy w pliku konfiguracyjnym
@Dijuna:

1. Header guard w globals.h
2. Zmienne globalne dostępne z headera powinny być zadeklarowane jako extern. Potem gdzieś w jakimś pliku źródłowym (niekoniecznie globals.cpp, chociaż to wydaje się być odpowiednim miejscem) musisz je zainicjalizować (czyli use_shares = _use_shares()).
3. C++ to nie Python - tu nie wskazujemy, że funkcja jest "prywatna" poprzez rozpoczęcie jej podkreśleniem. Jeśli chcesz mieć taką "niewidoczną" wolną funkcję (free function), czyli dostępną tylko
@virgoerns:
2. tak zrobiłem :)
3. podkreślenie na początku nie oznacza u mnie nic takiego, po prostu wcześniej miałem deklaracje tych stałych poprzez funkcje lambda ale coś mi tam nie działało i na szybkości sobie potworzyłem takie nazwa_zmiennej = _nazwa_zmiennej() - teraz już wiem, że to nie miało nic wspólnego z tym, że mi nie działało więc lambda pewnie wrócą i w globals.cpp będą :)
@virgoerns:
1. nie będą potrzebne bo globals.h nie planuję dołączać do plików .h, są zupełnie niezależne od całej reszty programu i nie musza być krzyżowo łączone
@Dijuna: Choćby zamiast stałej zwracać funkcją, bo jak się okaże, że za jakiś czas uprawnienia się zmienią - znaczy czy może coś zrobić czy nie będziesz wnioskował na większej ilości danych - to zmienisz tylko w funkcji sposób sprawdzania warunku, a nie w iluś tam miejscach rozsianych po całym kodzie.
Pisząc kod nie patrz tylko na to co zyskasz dziś, ale co będziesz robił jutro, jak będziesz musiał parę rzeczy zmienić.