Wpis z mikrobloga

@MacFlays: to jest argument za pisaniem std::cout.

Natomiast tutaj jest ::std::cout ( ͡° ͜ʖ ͡°) ta już pedantyczność² wynika z faktu że można std zasłonić szczególnie gdy jesteś w innym namespace np w jakimś gta5:: może być gta5::std:: i wtedy nawet std::string nie oznacza Tego std::string opisanego w standardzie, tylko ten z namespace gta5.

W praktyce, w plikach .h własnych to proponuję mieć konwencję swoją co jest
@rfree: @byloaledobre:
Najpierw trzebaby było się zastanowić czy istnieje w ogóle jakakolwiek biblioteka która mogłaby przesłonić nazwy z std. Bo nie sądzę, żeby ktoś się porywał na taki #!$%@? pomysł.
@Flypho: aha to miałeś na myśli. No tak, nikt nie będzie dawał namespace std { - chyba że na zasadzie

namespace std { namespace __debug { - tak to zrobiło g++ :)

Natomiast, tworzenie nazw które mogą kolidować z std, naz jak "vector" czy "map" się spokojnie może zdarzyć i jest to bardzo nieprofesjonalne aby wciągać std, a tym bardziej całe namespace std do swoich nagłówków a już całkowicie aby je
@Flypho: na przykład taki thread, jest w
- std
- boost
- just_thread http://www.stdthread.co.uk/

gdybyś miał kod zlepiony z kawałków pisanych przez lata pod C03, potem C03 + boost, potem C++11, to używając "using namespace" samo "thread" było by wieloznaczne.

Ogólnie rzeczy z boost, lądowały w jakimś specjalnym tr1:: czasem, a ostatecznie w std. Po drodze ich API mogło się jednak różnić więc trzeba uważać.

Oprócz tego założe się że są
@rfree: Nie no, umówmy się, że to są biblioteki w których właśnie chodzi o to, aby były zamiennikiem std i z taką myślą są tworzone.


@Flypho: Nawet w tej sytuacji (albo tym bardziej) może być tak iż musisz używać dokładnych nazw.

Na przykład Adam pisał bibliotekę do animacji 3D, napisał ją z takim API

--- adam3d.h ---

using just::thread;

class cLoader {
public:
void Add( const thread & progressbar