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 15463
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13970
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16504
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22060
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18926
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39262
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174728
283 이 달의 기술자료 - 2015년 09월 file 험프리 2015.08.26 497
282 [10.3 리오][업데이트1] 재설계한 RAD서버 콘솔 UI : API 분석 용이 & Ext JS로의 마이그레이션 지원 관리자 2019.02.22 496
281 이 달의 기술자료 - 2018년 09월 file 험프리 2018.08.31 496
280 (작성 중) 파이어몽키 모바일 개발에 대한 FAQ [1] 험프리 2015.12.01 495
279 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 1편 - 3장. 파이어몽키 이해하기 [2] 관리자 2020.02.04 495
278 iOS 배포 시 에러 해결방법: Cant' start debugserver on device - device support image was not mounted 관리자 2019.07.17 495
» [10.4 시드니 신기능 Deep Dive] 델파이 추가된 문법 및 변경 사항 김원경 2020.06.05 492
276 이 달의 기술자료 - 2017년 07월 험프리 2017.07.03 490
275 [10.4 시드니][업데이트 2] TCONTROLLIST – 새로운 VCL 컨트롤 관리자 2021.03.02 489
274 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 2편 - 2장(실습). 사원 정보 실전 앱 관리자 2020.02.06 489
273 [업데이트 서브스크립션 무료 솔루션] TWINECOMPILE – C++ 컴파일 속도를 현격하게 줄여줍니다! [1] 관리자 2020.12.18 487
272 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 2편 - 4장. 웹 서비스 데이터 이용하기 관리자 2020.02.06 487
271 [프로그래밍 애피타이저] 2장 컴파일,링크 및 운영체제(Operating System) file 김원경 2020.04.06 486
270 [발표자료] 20160504 새로 강화된 기능들: RAD Studio, Delphi, C++Builder 관리자 2016.05.09 486
269 2020 년 8 월 GM 업데이트 관리자 2020.08.24 485
268 InterBase ToGo 모바일용 라이선스 배포하기 file 데브기어 2019.10.30 485
267 델파이용 볼드(BOLD FOR DELPHI) 오픈 소스 공개! 관리자 2020.09.25 484
266 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 2편 - 3장. 데이터스냅으로 멀티티어 데이터베이스 앱 만들기 관리자 2020.02.06 484
265 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 file 관리자 2019.02.15 484
264 [발표자료] VCL 애플리케이션 확장하기 with RAD 서버 관리자 2017.03.16 483