A linguagem TL++ (TOTVS Language Plus Plus, ou também chamada de TLPP) é uma evolução do AdvPL. Desenvolvida para trazer ao programador AdvPL algumas facilidades vistas em outras linguagens.
A extensão da linguagem é tlpp.
Um código-fonte armazenado e compilado com essa extensão terá todas características descritas a seguir nas páginas filhas.
Os arquivos de biblioteca (includes) passam a ter a extensão .th (TL++header file) e são utilizados da mesma maneira que os arquivos .ch do AdvPL, ou sejam, são pré-processados com parte da linguagem.
Como a TL++ foi concebida como uma evolução da AdvPL, é possível trabalhar de maneira legada, ou seja, os arquivos com extensão .ch continuam sendo aceitos, mas é recomendado que a nova extensão seja utilizada para novos desenvolvimentos.
Importante:
Uma das premissas do TL++ é respeitar o escopo definido pelo desenvolvedor para funções, classes, métodos, propriedades e variáveis.
Portanto, em fontes com a extensão .tlpp, as funções definidas como STATIC somente poderão ser acessadas por funções ou métodos pertencentes ao mesmo código fonte.
Devido a isso, rotinas que fazem uso do recurso "StaticCall" não funcionarão em TL++.
Caso você possua rotinas que façam uso direto a esse recurso, aconselhamos a refatoração!
Uso Indireto
O MVC (Model-View-Controller) Protheus utiliza o recurso de "StaticCall", portanto as rotinas que possuem MVC não poderão migrar para .tlpp e acessar os novos recursos do TL++, nesse caso aconselhamos a manter esse fonte em .prw (ADVPL).