바이너리 호환성을 갖는 Map 작성

1. 바이너리 호환성을 갖는 Map 작성
Map 구현 수정

1. scenario::Map를 래퍼 클래스 처럼 동작하 도록 수정
2. 이전 scenario::Map의 기능을 scenario::detail::Map이 하도록 구현
Map의 Swap() 비정상 도작 수정

1. Map의 Swap()이 제기능을 하지 않아, 이를 수정함
Map 구조 변경

1. detail::Map을 상속외에는 생성 불가 능하도록 변경
2. scenario::Map에 operator[] 추가
Array 구조 변경

1. Array의 기능을 detail::Array로 옮김
2. Array를 detail::Array의 래퍼 클래스의 역활을 하도록 구조 변경
3. Array에 대한 ValuePlaceholderImpl 특수화 재작성

refs #4
Array 수정

1. Array_forward.h 에 detail::Array, detail::ArrayImpl 전방선언 추가
2. detail::Array의 선언 방법이 struct 이던것을 class로 변경
3. Array의 생성자에서 detail::Array를 상속한 타입에 대해서 호출되지 않는 문제 해결

refs #4
String 구조 변경

1. 변경된 Array에 따라 String도 같은 구조로 변경

refs #4
변경된 String에 대한 내용을 ErrorCode에 반영

1. String의 변경으로 인한 수정사항 ErrorCode에 반영
2. UNKNOWN_ERROR 상수 등록
3. 몇몇 메소드 inline 키워드 추가
4. ErrorCode.h 마지막에 String.h 참조 추가
5. GetMessageFunction에 대한 함수 서명 변경
6. GetMessage_() -> GetMessage()

refs #4
detail::Array 비교 연산자 추가

1. detail::Array 비교 연산자 추가
2. Array의 비교연산자를 간략화

refs #4
Value에 Swap() 메소드 추가

1. Value에 Swap() 메소드 추가

refs #4
Array 생성자 수정

1. detail::Array의 상속 타입에 대한 포인터 파라미터를 Array(detail::Array<T>* pArray)
생성자에서 처리하지 못하는 문제 해결

refs #4
Array의 하위 재정의 타입 수정

1. Array::const_reference 가 정상적이지 않은 문제 해결
2. 차후 이런 문제를 방지하고자 다른 타입에 대한 재정의도 수정

refs #4
바이너리 호환성을 갖도록 Structure 수정

1. 바이너리 호환성을 갖도록 Structure 수정

refs #4
Merge branch 'change_structure_of_binary_compatible_type' into change_url_to_compatible
detail::Array::Resize() 구현 오류 수정

1. detail::Array::Resize() 구현 코드에 대한 오타 수정

refs #4
Merge branch 'change_url_to_compatible' into convert_stringimpl_inner_encoding_to_utf8
wchar_t 문자열의 인코딩 변환을 함수화함

1. wchar_t 문자열의 인코딩 변환을 함수화 하여 코드 정리
detail::ArrayImpl<char>의 char 문자열에 대한 생성자 수정

1. detail::ArrayImpl<char>의 char 문자열에 대하여 인코딩에 관계 없이 입력을 받았던 것을, utf8
인코딩으로 변환하여
detail::String을 생성하도록 수정함
detail::ArrayImpl<char>의 생성자 정리

1. vector<char>, vector<wcahr_t>르 제외한 문자열 외의 타입에 대한 생성자를 제거
Merge branch 'convert_stringimpl_inner_encoding_to_utf8' into change_url_to_compatible