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

 
Ruslan Khasanov :
스타일러 를 사용할 때 "쓰레기"가 나타나는 이유는 무엇입니까?
그리고 왜 그것을 사용합니까? ))
 

컴파일 오류 (빌드 1327)

 class A { 
public :
         bool operator ++( int ) { return false ; }
};

void OnStart ()
{
        A a;
         while ( a++ ); //'++' - illegal operation use
}
 

컴파일 오류

 class A { public :
template < typename T>         void f( T t );
template < typename T> static void g( T t );
}; 
template < typename T> void A::f( T t ) {}
template < typename T> void A::g( T t ) {}

void OnStart ()
{
        A a;
        a.f(   1 ); //нормально
        A::g( 1 ); //'g<int>' - access to non-static member or function
}
 

컴파일 오류

 class A { public :
        A * operator ++()      { return & this ; }
};
template < typename T> void f( T t ) {}
void g( A *a )
{
        f( ++a ); //'A' - declaration without type (1)
        f( a. operator ++()); //нормально            (2)
}
특히 주의할 것입니다. (!) 행 (1)과 (2)를 바꾸면 모든 것이 정상이므로 추가 확인이 필요합니다.
 
A100 :

컴파일 오류

특히 주의할 것입니다. (!) 행 (1)과 (2)를 바꾸면 모든 것이 정상이므로 추가 확인이 필요합니다.
f(++a)와 f(a++)가 귀하의 예에서 다른 버전의 f를 유발한다는 것을 올바르게 이해하고 있습니까?
 
Anton Zverev :
f(++a)와 f(a++)가 귀하의 예에서 다른 버전의 f를 유발한다는 것을 올바르게 이해하고 있습니까?

아니요, 이것은 컴파일 오류 입니다. 즉, 아직 (특정 호출의) 실행에 도달하지 않았습니다. 라인 (1)과 (2)는 코드 측면에서 동일합니다(동일한 표기법이 다름)

++연산자의 문제일 뿐이라는 인상을 받지 않도록 예도 들겠습니다.

 class A { public :
        A * operator <<( int )      { return & this ; }
};
template < typename T> void f( T* t ) {}
void g( A* a )
{
        f( a << 1 ); //'A' - declaration without type
}
 
A100 :

라인 (1)과 (2)는 코드 측면에서 동일합니다(동일한 표기법이 다름)

++a와 a++는 여전히 의미가 다릅니다. 찾을 수 없습니까?
 
Anton Zverev :
++a와 a++는 여전히 의미가 다릅니다. 찾을 수 없습니까?
++가 없습니다
 

컴파일러 오류: 트리 최적화 오류

 #property library

class A { public :
template < typename T> int f( T a, int b, bool c = false );
};
template < typename T>
int A::f( T a, int b, bool c ) { return 0 ; }

class B : public A {
         virtual void g();
};
void B::g()
{
        f( 0 , 0 , false ); //нормально
        f( 0 , 0 );         //tree optimization error
}

class C {};
void start( C* ) export {}

' 트리 최적화 오류 '는 현지화하기 어려운 범주에 속하기 때문에 개발자에게 (가능한 경우) 모든 최적화를 최적화 키에 넣어달라는 요청(다행히도 존재함), 그렇지 않으면 최적화가 비활성화된 상태에서도 이전에 빌드 업데이트 후 작동하는 프로그램은 완전히 작동하지 않는 것으로 판명되었습니다(돌아가는 것은 금지됨).

오늘의 모든 오류는 오래된 것이 아니라 새로운 것입니다. 이전 (빌드 1241) 모든 것이 작동했습니다 .
 
A100 :
++가 없습니다

권리. 따라서 지정된

안톤 즈베레프 :
f(++a)와 f(a++) 가 귀하의 예에서 다른 버전의 f를 유발한다는 것을 올바르게 이해하고 있습니까?