오류, 버그, 질문 - 페이지 2310

 
최적화 모드에서 ExpertRemove의 잘못된 작동.
 input int Range = 0 ; // 1 .. 10

bool FuncInit()
{
   ExpertRemove ();
  
   return ( true );
}

int Count = 0 ;

void OnTick ()
{
   static const bool Init = FuncInit();
  
  Count++;
}

double OnTester ()
{
   return (Count);
}


최적화를 시작 합니다. 이 코드는 모든 패스가 ExpertRemove에 의해 중단되어야 함을 보여줍니다. 그러나 이것은 일어나지 않습니다:

Core 5   pass 8 tested with error "expert removed itself in global initialization function" in 0 : 00 : 00.312
Core 5   pass 9 returned result 331851.00 in 0 : 00 : 00.125
Core 4   pass 6 tested with error "expert removed itself in global initialization function" in 0 : 00 : 00.265
Core 4   pass 7 returned result 331851.00 in 0 : 00 : 00.140
Core 1   pass 0 tested with error "expert removed itself in global initialization function" in 0 : 00 : 00.312
Core 1   pass 1 returned result 331851.00 in 0 : 00 : 00.125
Core 3   pass 4 tested with error "expert removed itself in global initialization function" in 0 : 00 : 00.296
Core 3   pass 5 returned result 331851.00 in 0 : 00 : 00.156
Core 8   pass 2 tested with error "expert removed itself in global initialization function" in 0 : 00 : 00.265
Core 8   pass 3 returned result 331851.00 in 0 : 00 : 00.140
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 01 seconds
Statistics      shortest pass 0 : 00 : 00.125 , longest pass 0 : 00 : 00.156 , average pass 0 : 00 : 00.137
Statistics      local 10 tasks ( 100 %), remote 0 tasks ( 0 %), cloud 0 tasks ( 0 %)

패스의 절반은 ExpertRemove에서 무시되었습니다. 재현?


ZY 단일 패스와 최적화의 발산으로 이어집니다.

 
fxsaber :
 typedef void (*FUNC)();
void f1() {};

void f2()
{
   f1();
}

void f2( FUNC g) 
{
   g();
}

사실 기본 매개변수가 있는 하나의 함수와 동일합니다. 일반적으로 이것이 해결되는 방법이므로 이것은 우회가 아니고 목발이 아니라 완전히 정상적인 솔루션입니다.

 
TheXpert :

사실 기본 매개변수가 있는 하나의 함수와 동일합니다. 일반적으로 이것이 해결되는 방법이므로 이것은 우회가 아니고 목발이 아니라 완전히 정상적인 솔루션입니다.

과부하 옵션은 이해할 수 있습니다. 그러나 각 기능이 그러한 것을 생성하려면 - 전혀 유연하지 않습니다. C++에서 아름답게 하는 것이 정말로 불가능합니까?

 
fxsaber :

과부하 옵션은 이해할 수 있습니다. 그러나 각 기능이 그러한 것을 생성하려면 - 전혀 유연하지 않습니다. C++에서 아름답게 하는 것이 정말로 불가능합니까?

xs, 상수가 있는 C++가 더 유연하지만 함수 포인터를 기본 매개변수로 사용하지 않았습니다.

UPD g ++는 코드를 강타합니다.
 
TheXpert :

xs, 상수가 있는 C++가 더 유연하지만 함수 포인터를 기본 매개변수로 사용하지 않았습니다.

UPD g ++는 코드를 강타합니다.

정보 주셔서 감사합니다!

 
fxsaber :

함수의 입력 매개변수에 대한 기본값을 얻는 방법은 무엇입니까?

파이썬 스타일 코드를 사용할 수 있습니다

 typedef void (*FUNC)();

void f0() { Print ( __FUNCSIG__ );};
void f1() { Print ( __FUNCSIG__ );};

void f2( FUNC g = NULL ) {
   if (g == NULL ){g = f1;}
   
   g();
}


void OnStart ()
{
   f2();
   f2(f0);
}
 
Sergey Dzyublik :

파이썬 스타일 코드를 사용할 수 있습니다

감사합니다. NULL에 대해 몰랐습니다.

 

테스터의 보고서에서 매트를 계산할 때. CloseBy에서 두 개의 접힌 위치를 기다리는 것은 하나가 아닌 둘로 나뉩니다. 그 결과 보고서에 잘못된 값이 표시됩니다.


글쎄, 보고서에서 CloseBy와 같은 사건


 

Привет

나 혼자 이 [마켓 제품 이름이 중재자에 의해 제거됨]을 임대했고 설정을 변경할 수 없었습니다. 위치 번호 3 최대 3

동시에 여러 매수 및 매도 포지션의 수를 변경하는 방법

필립

 
foonet :

포럼에서 마켓 제품 에 대한 토론을 여는 것은 금지되어 있습니다.
포럼에서 마켓 제품 에 대한 토론은 금지되어 있습니다. 죄송합니다.