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 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39255
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
1398 N 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152331
1397 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 107325
1396 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 83093
1395 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71936
1394 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54120
1393 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 50357
1392 Find the O/S Language Type c2design 2014.07.30 47773
1391 RAD Studio Resource Center 박병일 2012.01.26 46456
1390 CD-ROM 열고 닫기 박병일 2011.12.22 44762
1389 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 38541
1388 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32457
1387 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29462
1386 델파이XE2 파이어몽키 기반 아이폰앱 개발에서 제스춰를 인식시키는 방법 박병일 2012.01.25 23256
1385 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 22915
1384 SendMessage 함수를 이용한 메세지 전송 관리자 2012.01.05 18256