예를 들어서 Color의 종류를 하나하나 정의해 놓고 싶다고 칩시다.
그렇다면 다음중 어느것을 사용하는 것이 가장 좋을까요?
C++11 이상 버전 기준입니다.
enum #define const
enum Color {Red, Blue, Green, ... };
등등..
스콧 마이어스의 Effective C++를 읽어보는 걸 추천합니다.
enum class Color { red, blue, green }; Color my_color = Color::red;
이런 선언이 가능한가요?
C++11의 Strongly-typed enum에 해당하는군요.
GCC에서는 4.4 이후부터 -std=c++0x 옵션을 통해 지원되고 (참고: C++0x/C++11 Support in GCC)
$ g++ -std=c++0x sample.cpp
Clang은 2.9 이후부터 -std=c++11 ( 또는, -std=c++0x ) 옵션을 통해 지원됩니다. (참고: C++98, C++11, and C++14 Support in Clang)
$ clang++ -std=c++11 sample.cpp
내친김에 Visual C++도 찾아보니 VS2012/2013은 지원하고, VS2010은 부분적으로 지원한다고 나오네요. (참고: C++11 Features (Modern C++))
http://www.gilgil.net/57457
www.gilgil.net
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
스콧 마이어스의 Effective C++를 읽어보는
스콧 마이어스의 Effective C++를 읽어보는 걸 추천합니다.
enum class Color { red, blue,
enum class Color { red, blue, green };
Color my_color = Color::red;
이런 선언이 가능한가요?
이런 선언이 가능한가요?
C++11의 Strongly-typed enum에
C++11의 Strongly-typed enum에 해당하는군요.
GCC에서는 4.4 이후부터 -std=c++0x 옵션을 통해 지원되고
(참고: C++0x/C++11 Support in GCC)
Clang은 2.9 이후부터 -std=c++11 ( 또는, -std=c++0x ) 옵션을 통해 지원됩니다.
(참고: C++98, C++11, and C++14 Support in Clang)
내친김에 Visual C++도 찾아보니 VS2012/2013은 지원하고, VS2010은 부분적으로 지원한다고 나오네요.
(참고: C++11 Features (Modern C++))
enum을 class로 선언해서 사용할 수도 있습니다.
http://www.gilgil.net/57457
www.gilgil.net
댓글 달기