Recenze: RAD Studio 10.2 Tokyo

V březnu letošního roku uvolnila firma Embarcadero Technologies další verzi RAD Studia, pojmenovanou pro změnu Tokyo a označenou číslem 10.2.

Recenze: RAD Studio 10.2 Tokyo


C++11, C++14 a C++17

Ani překladače založené na BCC, ani překladače založené na Clang zdá se nepodporují konstrukce, které přinesl standard C+14 nebo dokonce konstrukce, které by měly být součástí C++17. Podívejme se tedy na shodu těchto překladačů se standardem C++11.  Přehled vybraných konstrukcí a stav jejich implementace shrnuje následující tabulka.

Konstrukce

BCC32

BCC32C

Příkaz for pro kontejnery

Ne

Ano

Klíčové slovo auto

Ano

Ano

Jednotná inicializace

Ne

Ano

Nové typy řetězců a znaků

Ano

Ano

Reference na r-hodnotu

Ano

Ano

Klíčové slovo nullptr

Ne

Ano

Statické aserce

Ano

Ano

Deklarace typu pomocí using

Ne

Ano

Diakritika v identifikátorech

Ano

Ano

Silné výčtové typy

Ano

Ano

Delegování konstruktorů

Ne

Ano

Dědění konstruktorů

Ano

Ano

Metody delete

Ne

Ano

Metody default

Ne

Ano

Specifikátor override

Ne

Ano

Specifikátor final

Ne

Ano

Inicializace nestat. složek tříd v deklaraci

Ne

Ano

Nová syntax deklarace funkce

Ne

Ano

Identifikátor __func__

Ano

Ano

Specifikátor decltype

Ano

Ano

Lambda-výrazy

Ne

Ano

Specifikátor noexcept

Ne

Ano

Specifikátor constexpr

Ne

Ano

Variadické šablony

Ne

Ano

Zápis „>>“ ve specializaci šablony

Ne

Ano

Atributy

Ne

Ano

Uživatelské literály (operátor "")

Ne

Ano

Knihovny

O novinkách v knihovnách VCL a FireMonkey jsme se už zmínili v úvodním přehledu. Zde se krátce podíváme některé další.

Standardní knihovna C++

C++Builder implicitně používá standardní knihovnu jazyka C++ v implementaci Dinkumware, a to stejnou jako v předchozích verzích. To znamená, že v překladačích BCC32 a BCCOSX je k dispozici verze 5.01, tedy na úrovni standardu z roku 2003 s některými rozšířeními odpovídajícími standardu z roku 2011, a v překladačích BCC32C a BCC64 je k dispozici verze 6.50, jež odpovídá standardu z roku 2011 s některými novinkami ze standardu C++14. Nenajdeme tu např. literály typy string nebo literály vyjadřující čas, najdete tu šablonu integer_sequence, funkce cbegin() a cend(), které lze použít místo stejnojmenných metod atd.

  • Ve starší verzi standardní knihovny Dinkumware není k dispozici implementace jednosměrně zřetězeného seznamu, chybí tu třída array představující objektové zapouzdření pole z jazyka C, a není tu ani n-tice (šablona tuple). Pokud jde o kontejnery, najdeme tu z novinek standardu C++11 pouze šablony unordered_set, unordered_multiset, unordered_map a unordered_multimap, jež představují různé implementace hešových tabulek.
  • Novější verze této knihovny, kterou používají překladače založené na Clang, je obsahuje.
  • Ve starší verzi standardní knihovny Dinkumware také chybí nástroje pro práci s regulárními výrazy, nástroje pro práci s podprocesy (vlákny) a nástroje pro atomické operace. Nenajdeme tu ani nástroje pro práci s časem deklarované v hlavičkovém souboru . Také v tomto případě platí, že novější verze je obsahuje.
  • Ani jedna z porovnávaných verzí standardní knihovny neobsahuje manipulátory get_money() a put_money() pro formátovaný vstup a výstup měny. Neobsahuje také manipulátory get_time() a put_time() pro formátovaný vstup a výstup času.

Poznamenejme, že tuto knihovnu nelze použít pro mobilní platformy.



Úvodní foto: Fotolia - Melpomene










Komentáře