Portal SAMP
[Ajuda] retirar warnings "literal array/string passed to a non-const parameter" - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] retirar warnings "literal array/string passed to a non-const parameter" (/showthread.php?tid=1422)



retirar warnings "literal array/string passed to a non-const parameter" - MateusCandido - 18/07/2021

Estou usando o sampctl a um tempo ja com algumas includes muito boas, uma delas é o Nex-AC (anti-cheat).

Único problema é que sempre que eu preciso atualizar alguma include ou instalar um pacote novo ele baixa a versão mais recente de todas as outras includes, fazendo com que eu sempre tenha que corrigir os warnings de "literal array/string passed to a non-const parameter", pois as includes não estão usando a tag "const" nas funções.

Alguém sabe alguma forma de desabilitar esta checagem de constantes no sampctl, para eu não precisar ficar perdendo tempo tirando esses warnings das includes?


RE: retirar warnings "literal array/string passed to a non-const parameter" - SrDivuOfficial - 18/07/2021

(18/07/2021 11:40)MateusCandido Escreveu: Estou usando o sampctl a um tempo ja com algumas includes muito boas, uma delas é o Nex-AC (anti-cheat).
Único problema é que sempre que eu preciso atualizar alguma include ou instalar um pacote novo ele baixa a versão mais recente de todas as outras includes, fazendo com que eu sempre tenha que corrigir os warnings de "literal array/string passed to a non-const parameter", pois as includes não estão usando a tag "const" nas funções.

Alguém sabe alguma forma de desabilitar esta checagem de constantes no sampctl, para eu não precisar ficar perdendo tempo tirando esses warnings das includes?

poderia me enviar a include ?
caso não queira, só desativar dentro dela.


RE: retirar warnings "literal array/string passed to a non-const parameter" - xbruno1000x - 18/07/2021

No topo do GM:

Código:
#pragma warning disable [NÚMERO DO WARNING AQUI]



RE: retirar warnings "literal array/string passed to a non-const parameter" - MateusCandido - 21/07/2021

(18/07/2021 14:59)SrDivuOfficial Escreveu:
(18/07/2021 11:40)MateusCandido Escreveu: Estou usando o sampctl a um tempo ja com algumas includes muito boas, uma delas é o Nex-AC (anti-cheat).
Único problema é que sempre que eu preciso atualizar alguma include ou instalar um pacote novo ele baixa a versão mais recente de todas as outras includes, fazendo com que eu sempre tenha que corrigir os warnings de "literal array/string passed to a non-const parameter", pois as includes não estão usando a tag "const" nas funções.

Alguém sabe alguma forma de desabilitar esta checagem de constantes no sampctl, para eu não precisar ficar perdendo tempo tirando esses warnings das includes?

poderia me enviar a include ?
caso não queira, só desativar dentro dela.
A questão é justamente não ficar tendo que abrir a include toda vez amigo, não sei se ja usou sampctl alguma vez, mas toda vez que vc instala uma nova dependencia ele atualiza todas as outras, baixando sempre a versão mais recente da include, então sempre voltam os mesmos warnings.
Mas obrigado pela ajuda, bruno ja deu uma força.

(18/07/2021 15:37)xbruno1000x Escreveu: No topo do GM:

Código:
#pragma warning disable [NÚMERO DO WARNING AQUI]

Vlw novamente irmão, esses warnings são um inferno!


RE: retirar warnings "literal array/string passed to a non-const parameter" - theCrawler - 21/07/2021

O sampctl utiliza uma versão atualizada e aprimorada do compilador pawn (https://github.com/pawn-lang/compiler). Esse novo compilador, além de inúmeras melhorias, também identifica um número muito maior de possíveis erros de código, inclusive esse apresentado para você.

Esse warning é exibido pois você (ou a include no caso) está recebendo um array como parâmetro, e como esse valor não é modificado na função, ele avisa que você deve usar o atributo “const” na definição da função.

Exemplo:
Código:
// Errado
stock Func(string[]) { … }

// Correto
stock Func(const string[]) { … }

@EDIT
Não é aconselhável desativar esses erros de forma forçada, principalmente globalmente. O ideal é identificar e corrigir (não está sendo exibido atoa). Em raríssimas ocasiões, à necessidade de usar esse recurso.


RE: retirar warnings "literal array/string passed to a non-const parameter" - xbruno1000x - 21/07/2021

(21/07/2021 12:57)theCrawler Escreveu: O sampctl utiliza uma versão atualizada e aprimorada do compilador pawn (https://github.com/pawn-lang/compiler). Esse novo compilador, além de inúmeras melhorias, também identifica um número muito maior de possíveis erros de código, inclusive esse apresentado para você.

Esse warning é exibido pois você (ou a include no caso) está recebendo um array como parâmetro, e como esse valor não é modificado na função, ele avisa que você deve usar o atributo “const” na definição da função.

Exemplo:
Código:
// Errado
stock Func(string[]) { … }

// Correto
stock Func(const string[]) { … }

@EDIT
Não é aconselhável desativar esses erros de forma forçada, principalmente globalmente. O ideal é identificar e corrigir (não está sendo exibido atoa). Em raríssimas ocasiões, à necessidade de usar esse recurso.

O fato é que esse novo compilador gera uma quantidade enorme de warnings que não fazem diferença, e a consequência disso é a dificuldade de encontrar as coisas importantes dentre 80/90 warnings. Creio ser esse o problema do MateusCandido e essa é a melhor alternativa.


RE: retirar warnings "literal array/string passed to a non-const parameter" - MateusCandido - 21/07/2021

(21/07/2021 12:57)theCrawler Escreveu: O sampctl utiliza uma versão atualizada e aprimorada do compilador pawn (https://github.com/pawn-lang/compiler). Esse novo compilador, além de inúmeras melhorias, também identifica um número muito maior de possíveis erros de código, inclusive esse apresentado para você.

Esse warning é exibido pois você (ou a include no caso) está recebendo um array como parâmetro, e como esse valor não é modificado na função, ele avisa que você deve usar o atributo “const” na definição da função.

Exemplo:
Código:
// Errado
stock Func(string[]) { … }

// Correto
stock Func(const string[]) { … }

@EDIT
Não é aconselhável desativar esses erros de forma forçada, principalmente globalmente. O ideal é identificar e corrigir (não está sendo exibido atoa). Em raríssimas ocasiões, à necessidade de usar esse recurso.

Sim, eu sei disso.
O problema é que muitas das includes não atualizaram seus códigos de acordo com o compilador mais recente, como no caso do Nex-AC, logo varias funções dentro da include dele não possuem o const nos parametros, geralmente eu procuro onde esta declarada a função e coloco, mas é um saco ter que fazer isso toda vez que preciso instalar um pacote novo.
As vezes até em includes que não suportam o sampctl acusa este warning, mas pelo menos nessas eu só preciso editar 1 vez até que saia outra atualização que eu precise baixar.