"Někdo vám nahoře napsal, že to právě ještě není vyřešeno, takže až to norma vyřeší, tak to začnu používat po novu. Zatím pořád anonymní namespace má external linkage, bohužel."
No nevim:
§ 6.5.4
An unnamed namespace or a namespace declared directly or indirectly within an unnamed namespace has
internal linkage. All other namespaces have external linkage.
static totiž neumožňuje nastavit internal linkage pro struktury šablony apod. Proto se ho snažili zrušit a vrátil se jen kvůli zpětné kompatibilitě s C.
@kutr
No ale stejně to je nějaký rozbitý, protože kdyby to mělo internal linkage, tak to nejde přeložit, protože tam používám v šablonách pointery jako argument, který vyžadují mít external linkage, přestože jsou v anonymním namespace, tak si překladač nestěžuje.
Nicméně nevidím nic špatného na tom používat static u funkcí. Stejně tak se můžeme hádat, jestli je lepší použít typedef nebo using, constexpr nebo static const, atd... a to nikam nevede. Kdyžtak na google najdete hodně takových diskuzí, jestli máte potřebu se hádat, tak směle do toho.
Asi by bylo lepší postupně odhodit deprecated nástroje ze starších verzí C++, ale jak říkám, dokud v tom není jasno, já jsem opatrnej.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 063×
Přečteno 23 939×
Přečteno 22 871×
Přečteno 20 952×
Přečteno 17 760×