템플릿 매개변수가 있는 컴파일러 버그 = void* - 페이지 2

 
fxsaber :

불행히도 나는 사용 예를 보지 못했습니다.

예를 들어, 다양한 유형의 객체 배열을 생성합니다.
 
Vladimir Simakov :
예를 들어, 다양한 유형의 객체 배열을 생성합니다.

나는 위에서 예를 들었다. 그러나 유형을 모르는 경우 어떻게 참조합니까?

 
fxsaber :

나는 위에서 예를 들었다. 그러나 유형을 모르는 경우 어떻게 참조합니까?

내가 어떻게 몰라? 나는 그것을 거기에 넣었습니다. 즉, 그들의 목록은 최종적입니다. 이 목록에 있는 유형의 열거로 진부하고 dynamic_cast를 구출합니다.

 
Vladimir Simakov :

내가 어떻게 몰라? 나는 그것을 거기에 넣었습니다. 즉, 그들의 목록은 최종적입니다. 이 목록에 있는 유형을 열거하는 것은 진부한 일이며, 구조를 위해 dynamic_cast입니다.

글쎄, 이것은 꽤 목발 솔루션입니다!

 

예를 들어 MQ에서 ArrayCopy 는 void*를 기반으로 합니다. 다시 해야 할 때 템플릿을 사용합니다. 그리고 모든 것은 물론 지정된 유형에 따라 엄격하게 쟁기질합니다.

그래서 아직 void* 사용성 스크립트를 찾을 수 없습니다. 분명히, 나는 이 디자인이 제공하는 가능성을 좁게 본다.

 
fxsaber :

글쎄, 이것은 꽤 목발 솔루션입니다!

글쎄, 사람이 원한다면 왜 헤어지십시오. 그렇다면 왜 목발인가? 무료 리소스가 허용된다면 그 이유는 무엇입니까? 광고와 Java는 하나의 큰 목발이며 일반적으로 어셈블러가 지배합니다. 결국 의욕은 있는데 기회가 없고, 왜 그런지도 불명확한데 이게 윙윙거리는 소리가 아니라 바로잡아야 한다.

 
Vladimir Simakov :

글쎄, 사람이 원한다면 왜 헤어지십시오. 그렇다면 왜 목발인가? 무료 리소스가 허용된다면 그 이유는 무엇입니까? 광고와 Java는 하나의 큰 목발이며 일반적으로 어셈블러가 지배합니다. 결국 의욕은 있는데 기회가 없고, 왜 그런지도 불명확한데 이게 윙윙거리는 소리가 아니라 바로잡아야 한다.

이 칩은 신경쓰지 마세요. 새롭고 유용한 것을 배우도록 요청합니다. 이를 위해 저는 여러 면에서 포럼에 있습니다.

 
fxsaber :

예를 들어 MQ에서 ArrayCopy는 void*를 기반으로 합니다. 다시 해야 할 때 템플릿을 사용합니다. 그리고 모든 것은 물론 지정된 유형에 따라 엄격하게 쟁기질합니다.

그러나 포인터는 복사하지 않고 암시적으로 캐스트되는 호환 가능한 포인터만 복사합니다. 이전에는 모든 사용자 기능이 이 방식으로 작동하므로 매우 편리했습니다. 이제 템플릿으로 변질시키거나 새 배열로 다시 복사하십시오. 누가, 왜 잘라야 했는지는 분명하지 않습니다.

 
Alexey Navoykov :

그러나 포인터는 복사하지 않고 암시적으로 캐스트되는 호환 가능한 포인터만 복사합니다. 이전에는 모든 사용자 기능이 이 방식으로 작동하므로 매우 편리했습니다. 이제 템플릿으로 변질시키거나 새 배열로 다시 복사하십시오. 누가, 왜 잘라야 했는지는 분명하지 않습니다.

그리고 이전과 마찬가지로 가능했습니다. 유형은 항상 일치해야 하는 것 같습니다.

 
Alexey Navoykov :

컴파일러 오류입니다. 빌드 1961.

그리고 1961x32에서는 모든 것이 작동합니다... 실수입니다!