Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[버전정보] 11.0 알렉산드리아 언어와 컴파일러


Recommended Posts

<< 위로 이동 (최신 버전 포함 모든 버전)

RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: 언어와 컴파일러" 입니다.
11.0 알렉산드리아의 모든 새 기능,  강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다.

11.0 알렉산드리아 - 언어와 컴파일러 관련 주요 업데이트 요약


델파이: 이진 리터럴 숫자 구분기호

델파이 언어는 10진수 16진수 외에 이진 리터럴에 대한 지원이 추가되었다

바이너리 리터럴은 % 기호를 접두사로 사용한다 (다른 파스칼 컴파일러에서 사용하는 구문과 동일하다 )

const
  Four = %100;
var
  x: Integer;
begin
  x := %10010001;

또한 숫자가 많은 리터럴 값의 가독성을 향상시킬 있도록 숫자 구분 기호(밑줄, “_”)을 사용할 수 있다코드 구문 분석과 컴파일에서 해당 기호는 무시된다. (C# 7.0에서 도입된 기능과 유사)

const
  AMillion = 1_000_000; // _로 구분되므로 "1백만" 임을 쉽게 알 수 있다.
  ANumber = %10010101_10011001_11010001_10010011"; // 바이너리 리터럴에서도 _를 사용할 수 있다.

이 숫자 구분 기호는 이진 리터럴에서도 사용할 수 있다. (예 "%10010101_10011001_11010001_10010011")

 

 

AVX 명령어에 대한 인라인 어셈블러 지원(AVX-512)

AVX2(ymm) AVX512(zmm) 등 최신 명령어셋을 위한 asm 코드를 지원한다.

참고:  (최신 인텔 CPU와 같은) AVX-512 호환 CPU가 있어야 이 기능을 테스트할 수 있다. 더 자세한 정보: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512

 

신규 C++ 코드 포맷터

C++ 사용되는 코드 포맷터 기술이 clang 형식으로 완전히 대체되었다. 새 C++ 포맷터 옵션은 Language > C++ > Formatting 에서 설정할 있다.

cpp_codeformatting.png

코드 포맷을 수동으로 지정하기는 언제든 할 수 있다. 하지만, 저장하거나 입력할 때 IDE가 자동으로 코드 포맷을 지정하도록 할 수도 있다. 'Auto formatting' 설정에서   format on save, 또는 format on newline로 지정하면 된다.

IDE 일반적인 C++ 프로젝트 규칙대로, 소스폴더의 .clang-format 파일에 지정된 포맷 설정을 사용한다. .clang-format 파일을 찾을 없는 경우 IDE는 (위에 있는) Options 대화창에 있는 Formatting style에 지정된 포맷을 사용한다 (기본 값은 Embarcadero 추첫 포맷이다).

 

C++ / Delphi 호환성

이제 델파이 타입용 C++-호환 RTTI가 있다. 이제 델파이 타입을 다루는 make_shared를 사용할 수 있으며, C++로 델타이 타입을 사용할 때 도움을 주는  타입 컨버전(전환)이 들어있다.  

C++: 델파이 타입 RTTI 호환성

예전에는 델파이 타입에 사용할  있는 C++ 타입 정보가 없었다, delphi-type Pascal 코드에서 가져온 타입이거나 C++ 델파이 스타일 클래스인 typeid(delphi-type) 결과에 액세스하면 AV 발생합니다. typeid 단순히 타입에 대한 std::typeinfo 반환하거나, 또는 해당 인스턴스의 가장 많이 파생된 타입에 대한 다형성 형식인 경우 이를 반환한다.

typeid() 이제 std::typeinfo 반환한다. 그리고 델파이 타입 용 C++ 호환 RTTI 생성된다.

 

스마트 포인터를 델파이 클래스에서 사용

이제 std::make_unique 와 std::make_shared 모두를 델파이 클래스에서 사용 할 수 있다 (델파이 또는 C++에 정의 되었지만 델파이에 정의된 클래스에서 상속됨).

 

타입 변환

이제 RTL에는 델파이 타입과 C++(및 델파이) 문자열 간에 타입 변환을 하는 헬퍼 메서드가 포함되었다. 여기에는 TDateTime에서 문자열 타입으로 변환, C++ 문자열에서 델파이 문자열로 쉽게 변환(할당), 델파이 문자열에서 std::string_view 사용이 포함되었다. 이제 to_string()과 from_string() 메소드를 이용해 문자열로 변환하거나 문자열에서 변환한다. (UnicodeString, WideString 및 AnsiString, 코드 페이지로 템플릿 포함). 

이 메소드를 제공하는 타입은 다음과 같다.

  • Currency
  • TDateTime
  • Integer(32/64비트, 부호가 있거나/부호가 없는)
  • 부동 소수점 타입(Extended)
  • Variants

 

기타

  • 이제 Clang 컴파일러는 인터페이스가 IUnknown에서 파생되지 않았을 경고를 표시한다.
  • 이제 C++ Win64 디버거를 사용하여 프로세스에 연결할 수 있다.
  • 프로젝트 일괄 컴파일이 .c 파일을 무시하던 문제가 해결되었다.

View full RAD 스튜디오 버전별 신기능

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.