Page 21 -
P. 21

Warning  using 디렉티브를 사용할 때 주의하자
                      소스 파일에서 using 디렉티브를 사용할 때는 각별히 주의해야 한다. using namespace std란 디렉티브로 std에
                                                                                                      1
                      속한 모든 이름에 접근할 수 있기 때문이다. 그래서 본의 아니게 로컬에 있는 이름이나 상위 네임스페이스 이름을 가
                      려버릴 수 있다.
                      헤더 파일에서는 using 디렉티브를 사용하면 안 된다. 헤더 파일에 using namespace std 디렉티브를 적으면 std        표준 라이브러리
                      에 속한 이름이 모두 드러나게 된다.






                    네임스페이스 앨리어스

                    네임스페이스 앨리어스(namespace alias)는 네임스페이스에 대한 동의어를 정의한다. 긴 네임스페
                    이스나 중첩된 네임스페이스 대신 이렇게 앨리어스를 사용하면 편할 때가 많다.

                      #include <chrono>
                      ...
                      namespace sysClock= std::chrono::system_clock;
                      auto nowFirst= sysClock::now();
                      auto nowSecond= std::chrono::system_clock::now();

                    now 함수를 공식 네임스페이스로 가리킬 수도 있지만 네임스페이스 앨리어스로 가리킬 수도 있
                    다. 네임스페이스 앨리어스를 사용할 때는 다른 이름을 가리지 않도록 주의한다.





                    1.3.3 실행 파일 생성하기


                    라이브러리를 명시적으로 링크할 일은 거의 없지만, 플랫폼마다 다를 수 있다. 예를 들어 g++ 또
                    는 clang++ 컴파일러에서 멀티스레딩 기능을 사용하려면 다음과 같이 pthread 라이브러리에 대
                    한 링크를 직접 지정해야 한다.


                      g++ -std=c++14 thread.cpp -o thread -pthread













                                                                                                  37





     c++_06.indd   37                                                                        2021-11-19   오전 9:25:43
   16   17   18   19   20   21   22   23   24   25   26