warning C4482: 비표준 확장이 사용되었습니다. 정규화된 이름에 ... 열거형을 사용했습니다. 해결에 대한 고민

namespace Animation
{

struct eMotionLayer
{
enum
{
eUpper = 0, ///< 상체
eLower, ///< 하체
eMax
};
};

}

사실 예전부터 제목처럼 비표준 어쩌고 해서 enum을 struct로 묶어서 사용했었습니다. Animation::eMotionLayer::eUpper처럼 말이죠. 그럼 깔끔하게 warning가 안 떴거든요. 근데 요즘들어 왜 그냥 enum으로만 하면되지 타이핑을 더 해가면서 struct에 넣어서 해야만 warning이 없어지는거야? 다른 방법은 없을까? 하는 생각이 들었습니다.


namespace Animation
{

enum eMotionLayer
{
eUpper = 0, ///< 상체
eLower, ///< 하체
eMax
};

}

Animation::eMotionLayer::eUpper 처럼 사용하면 제목처럼 warning가 발생하는데요 Animation::eUpper처럼 사용하고 이렇게 간단히 하나의 namespace에 enum만 놓고 쓸려고 생각은 해봤습니다. 하지만 이 eMotionLayer 말고 다른 enum들이 생길 시 다 똑같이 Animation:: 으로 사용을 해야한다는 측면에서 맘에 안 들더라구요.


namespace Animation
{

namespace eMotionLayer
{
enum eMotionLayer
{
eUpper = 0, ///< 상체
eLower, ///< 하체
eMax
};
}

}

Animation::eMotionLayer::eUpper 사용은 이렇게 하면 되지만 그렇다고 위처럼 네임스페이스를 두번 묶어하는게 그닥 이뻐보이지는 않고요... 

뭘 어떻게 해야 이쁘고 깔끔하니 될까 고민중입니다. 일단 2번째 방법으로 간단히 해가볼려고합니다.

댓글

  1. 안녕하세요 :)

    일여년전에 고민하신 내용을 저는 지금 하고 있는 와중에 방문했습니다. 딱 고민의 사고가 저랑 같아서 지금 눈에 땀이 차는 중이에요ㅠㅠㅠ

    혹시 방법을 찾으셨나요? ㅠㅋ

    답글삭제
    답글
    1. ^^ 여전히 2번째 방법으로 하고 있습니다. 딱히 답이 없는게 코딩이라지만 그와중에 자기가 원하는 스타일을 계속 찾아가는수뿐이 없는듯 하네요..

      삭제

댓글 쓰기

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.