RAD Studio 10.4에서 변경 된 문법들을  정리 해 보았습니다. 

 

통합 메모리 관리  

델파이 메모리 관리는 이제 개체 메모리 관리의 고전적인 구현을 사용하여 지원되는 모든 플랫폼 (모바일, 데스크탑 및 서버)에 통합되었습니다.기존의 ARC(Automatic  Reference Counting) 메모리 관리 기능은  훌륭하지만 항상 기존의 메모리 관리 방식을 사용하는 데스크탑 컴파일러와 호환되지 않았으며 메모리 소유주 모델 또는 TComponent  파생 클래스를 기반으로 하는 라이브러리와 일치하지 않았습니다. 통합 메모리관리로 인해 델파이 메모리 관리가 모든 버전에서 통합되어 기존 코드와의 호환성이 향상되고 컴포넌트라이브러리  사용자 애플리케이션의 코딩이 단순화 해집니다결과적으로 델파이 데스크탑 코드가 이제 모바일 플랫폼과   호환된다는 것을 의미합니다.  ARC 모델은 모든 플랫폼에서 문자열 관리 및 인터페이스 유형 참조를 위해 유지됩니다. 

C ++  영향 : 메모리 관리            

new/delete 통해 모든 오브젝트를 생성하고 해제 합니다델파이 스타일 클래스 (델파이로 구현  클래스 또는 C++ 구현  델파이 클래스의 자손 일반적인 생성  삭제는 힙에 할당  일반 C++ 클래스와 마찬가지로 일반적인 메모리 관리를 따릅니다

C ++ 델파이 스타일 클래스에서는  스택 할당이 지원되지 않았습니다마찬가지로 make_unique <> 사용할  없습니다                            

모바일 플랫폼에서 NextGen 제한 사항 제거 

델파이 모바일 컴파일러는 NextGen 플래그 관련 언어 제한을 비활성화합니다. 이제 모바일 플랫폼에서 Char AnsiString 같은 타입을 사용할 있다는 것을 의미합니다. 그러나 ANSI 코드 페이지와 같은 일부 윈도우 개념은 실제로 모바일에 존재하지 않으므로 Numeric 캐릭터 값이 플랫폼 간에 동일하게 매핑되지는 않습니다. 물론 이것은 유니 코드 문자열 (델파이의 기본 문자열 유형은 UTF-16 기반으로 합니다.)에는 해당하지만 1 바이트 문자열에는 해당되지 않습니다.                   

 

이러한 변경 사항에 따라 모든 플랫폼에서  {$ ZEROBASEDSTRINGS OFF} 사용하여  [] 통해 문자열 요소 액세스에 대한 기본값을 수정했습니다0 로부터 시작하는 문자열 액세스 모드를 사용하지 않도록 설정했음에도 불구하고 이는 []에만 해당되며, TStringHelper 메서드는 항상 그랬듯이 0부터 시작하는 문자열 위치 카운팅을 사용하는 동일한 모델을 계속 사용합니다

문자열

                

인덱싱은 다음과 같습니다.

               

●  델파이 문자열 타입 헬퍼 : 0 기반                        

●  델파이 플랫 함수들 : 1 기반

             ●  C ++ : 항상 1 기반입니다플랫폼데스크탑 또는 모바일과 관계 없이 모든 C ++ 구현 코드 (AnsiString                           UnicodeString 포함) 1 기반입니다.  인덱싱은 여전히 델파이 헬퍼와 일치하지 않지만 C ++로만 작업하는           C++  개발자의 경우 C ++에서 동작이 1 기반으로 일관됩니다.

커스텀 매니지드 레코드(Custom Managed Record)

델파이 언어에 추가된 주요 문법으로, 델파이 레코드 타입은 이제 초기화(Initialization), 종료(finalization), 그리고 복사 연산자를 직접 작성할 수 있습니다. 개발자들은 레코드 생성, 복사, 파괴하는 각 단계에서 실행될 코드를 직접 작성해 지정할 수 있습니다. 이 추가기능을 잘 활용한다면 클래스보다 더 효과적으로 사용할 수도 있습니다.

비트 카운팅 표준 기능

 

아래에 나열된 일반적인 저수준(Low Level) 비트 처리 작업을 위한 새로운 표준 기능이 도입되었습니다.

                

  • 선행 제로 카운트

        매개 변수 X 최상위 1 비트 앞에 있는 선행 0 비트 수를 계산합니다. X 0이면 비트 너비를 리턴합니다.                                      CountLeadingZeros32 경우 32, CountLeadingZeros64 경우 64입니다.

          function CountLeadingZeros32(X: Cardinal): Integer;

          function CountLeadingZeros64(X: UInt64): Integer;                     

                        

  • 후행 제로 카운트        

       매개 변수 X 최하위 1 비트 다음에 오는 후행 0 비트 수를 계산합니다. X 0이면 비트 너비를 리턴합니다

          , CountTrailingZeros32 경우 32, CountTrailingZeros64 경우 64입니다.                             

          function CountTrailingZeros32(X: Cardinal): Integer; 

          function CountTrailingZeros64(X: UInt64): Integer

   

  • 파라미터 개수 카운팅

       파라미터 X 1 개수를 계산합니다반환 값의 범위는 0 ~ 비트 폭 너비 사이입니다.

             CountPopulation32 경우 32, CountPopulation64 경우 64입니다.

 

           function CountPopulation32(X: Cardinal): Integer; 

           function CountPopulation64(X: UInt64): Integer;             

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 17862
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16220
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18870
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24450
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25829
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21188
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41775
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 177082
174 [10.4 시드니 신기능] 고해상도 DPI용 VCL 콘트롤(들) 관리자 2020.06.04 513
173 이 달의 기술자료 - 2018년 11월 file 험프리 2018.10.26 513
172 [시애틀] iOS 64bit와 유니버셜앱을 만들고 디바이스에서 디버깅할 수 있습니다. Humphery 2015.09.04 513
171 [프로그래밍 애피타이저] 2장 컴파일,링크 및 운영체제(Operating System) file 김원경 2020.04.06 510
170 이 달의 기술자료 - 2015년 09월 file 험프리 2015.08.26 509
169 [군산대학교] 모바일 프로그래머 양성 과정 (무료) file 관리자 2018.06.25 504
» [10.4 시드니 신기능 Deep Dive] 델파이 추가된 문법 및 변경 사항 김원경 2020.06.05 499
167 (작성 중) 파이어몽키 모바일 개발에 대한 FAQ [1] 험프리 2015.12.01 497
166 [10.4 시드니][업데이트 2] TCONTROLLIST – 새로운 VCL 컨트롤 관리자 2021.03.02 496
165 2020 년 8 월 GM 업데이트 관리자 2020.08.24 493
164 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 file 관리자 2019.02.15 491
163 [10.3 리오][업데이트 3] 향상된 IDE 기능들 file 관리자 2019.12.03 490
162 [시애틀] VCL 스타일이 공용 대화 상자와 웹브라우저까지 적용됩니다. Humphery 2015.09.02 484
161 [업데이트][핫픽스][10.2.2] 웰컴 페이지 패치 험프리 2018.01.25 483
160 RAD Studio 10.2 도쿄! 곧 출시됩니다. 관리자 2017.03.16 480
159 [발표자료] 20200609 What's NEW! RAD스튜디오 10.4 시드니 file 관리자 2020.06.10 480
158 [10.4.1 패치] 애플(APPLE) 플랫폼 지원 관리자 2020.11.30 479
157 [10.3 리오] RAD 서버 엔드 포인트 연동이 더욱 쉽고 다양해 졌습니다. 험프리 2018.12.06 479
156 [업데이트][핫픽스][10 시애틀] 10 시애틀 iOS 9.2 C++ 핫픽스 험프리 2015.12.28 478
155 이 달의 기술자료 - 2020년 07월 험프리 2020.06.25 478