Erros, bugs, perguntas - página 2745
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pergunta de optimização. No testador, em cada carrapato preciso de receber um carrapato para continuar o trabalho. Faço-o desta forma.
É evidente que esta variante será mais lenta:
Mas o SymbolInfoTick também é mais lento porque o seu parâmetro de cordas não é passado por referência.
É possível ter um SymbolInfo* regular de sobrecarga onde o fio é passado por referência?
É melhor ter
No Optimizer, estas funções são chamadas dezenas de milhares de milhões de vezes.
Calling Symbol() expande-se SEMPRE para aceder à variável global _Symbol, bem como Digits(), Point(), Period(), GetLastError(), IsStopped(), UninitializeReason()
A chamada Symbol() desdobra-se SEMPRE para aceder à variável global _Symbol, tal como os Dígitos(), Ponto(), Período(), GetLastError(), IsStopped(), UninitializeReason()
E a passagem de cordel por referência?
E passar um fio por referência?
Aparentemente, a razão é um dos problemas insolúveis no MQL - passando um literal como parâmetro pela constante ref.
É possível ter regularmente SymbolInfo* overloads, onde o fio é passado por referência?
Como é que eles ajudariam?
Ainda devolve 1, não 2
E passar um fio por referência?
O fio é passado por referência.
Há muito que nos movemos para "copy_on_write string" -> quando a cópia de uma string para outro conteúdo não é copiada imediatamente (como era antes), a contagem de referência do buffer de string é aumentada
Por exemplo, a contagem de referência é aumentada ao passar a string por valor, como parâmetro e diminuída após a chamada.
Quando
uma cadeia de caracteres é alterada, a contagem de referência do buffer é verificada e se houver mais do que uma referência, a cadeia de caracteres a ser alterada é "desvinculada" do buffer antigo e é atribuída uma nova
Como é que eles vão ajudar?
Ainda retorna (chamado) 1, e não 2
A variável _Símbolo é constante
Então a sobrecarga também não vai ajudar.
haverá um erro já no momento da compilação
O fio é passado por referência.
Há muito que nos movemos para "copy_on_write string" -> ao copiar uma string para outra o conteúdo não é copiado imediatamente (como era antes), o número de referências ao buffer da string é aumentado
Por exemplo, o número de referências é aumentado quando a string é passada por valor, como parâmetro e diminuído após a chamada.
Quando
uma cadeia de caracteres é alterada, a contagem de referência do buffer é verificada e se houver mais do que uma referência, a cadeia de caracteres alterada é "desvinculada" do buffer antigo e é-lhe atribuída uma nova
Será tudo isto definido a nível de compilação?
Erro de compilação:
Será tudo isto definido a nível de compilação?
Não. Ainda não é conhecido no momento da compilação.