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 17894
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16247
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18892
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24491
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25861
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21232
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41820
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 177114
163 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71958
162 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54145
161 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32484
160 델파이XE2의 VCL Styles 활용하기 박병일 2012.01.19 15384
159 이 달의 기술자료 - 2015년 02월 file 험프리 2015.01.29 15067
158 [따라하기] 도서대여 프로그램 만들기(VCL, DB프로그래밍) [2] file 험프리 2017.01.19 10570
157 VCL Style Util 박병일 2012.01.11 10288
156 파이어 몽키 이퀼라이저 데모 동영상 박병일 2012.02.06 10067
155 파이어몽키를 이용해서 아이폰앱을 개발할때 스타일 바꾸기 관리자 2012.04.19 8983
154 [XE3] VCL 이나 FireMonkey 폼을 Metropolis UI로 컨버팅하는 1분 동영상 관리자 2012.09.12 6922
153 파이어몽키 모바일에서 사용자 파일 배포 및 사용 file 험프리 2013.12.27 6244
152 David I의 31 XE3 퀵 비디오 - 윈도우8 스타일 사용하기 관리자 2012.10.08 6166
151 [C++빌더 XE3 비디오 31] 기존 C++ VCL과 파이어몽키 앱에서 메트로폴리스 UI 사용하기 관리자 2013.01.08 6089
150 인터베이스(InterBase) 2020 버전을 사용해야 하는 5 가지 이유 file 김원경 2020.04.09 6042
149 [따라하기] 건강데이터 수집 및 기록 시스템 #1 - BLE 기반 스마트 체중계에서 실시간 데이터 받기 [1] Humphery 2015.10.02 5894
148 DLL 폼에서 VCL 폼 스타일 적용하기 file 김원경 2019.10.28 5869
147 RAD Studio, Delphi 그리고 C++빌더 로드맵 - 한글(2014년 3월) file Humphery 2014.03.05 5571
146 RAD Studio 프리미엄 스타일 사용방법(VCL / FMX) [1] Humphery 2014.10.10 5421
145 [델파이 문법] 문법 요소 #14 file 관리자 2012.12.17 5378