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

 
A100 :

구문적으로 정당화되는 오류가 있습니다. 대괄호 안에 (typename)이 있는 작업 코드의 예를 제공하십시오. 동일한 성공으로 대괄호 안에 (OnStart)를 쓸 수 있었습니다.

글쎄, 그게 다야 구문 오류가 없습니다

 typename (J)

그래서 이미 신디사이저 오류로 간주됩니까?

( typename )J

이론적으로 유형 변환 원칙이 여기에서 작동하고 도움말에서 두 옵션을 모두 허용하는 경우.

 
Roman :

글쎄, 그게 다야 구문 오류가 없습니다

그래서 이미 신디사이저 오류로 간주됩니까?

이론적으로 유형 변환 원칙이 여기에서 작동하고 도움말에서 두 옵션을 모두 허용하는 경우.

 template < typename T>

typename은 유형이 아니라 키워드입니다. 이 경우 유형은 T입니다. 캐스트는 키워드가 아닌 유형으로 이동합니다.

철학적 정당성은 여기에 적합하지 않습니다. MQL이 추상적인 언어였다면 아마 키워드로 캐스팅이 가능했을 것이고 바로 순위에서 1위를 차지했을 것입니다.

 
A100 :

typename은 유형이 아니라 키워드입니다. 이 경우 유형은 T입니다. 캐스트는 키워드가 아닌 유형으로 이동합니다.

철학적 정당성은 여기에 적합하지 않습니다. MQL이 추상적인 언어였다면 아마 키워드로 캐스팅이 가능했을 것이고 바로 순위에서 1위를 차지했을 것입니다.

나는 그 유형 이름을 이해 한다   그것은 유형이 아닙니다.
그러나 이 경우 우리는 변환을 얻습니다.
상수에서 유형을 얻습니다.
이것이 올바른 구문 항목이 아닐 수 있습니까? 하지만 그녀는 일한다.

 #define  A '+'

typename (A)
 
Roman :

나는 그 유형 이름을 이해 한다   그것은 유형이 아닙니다.
그러나 이 경우 우리는 변환을 얻습니다.
상수에서 유형을 얻습니다.
이것이 올바른 구문 항목이 아닐 수 있습니까? 하지만 그녀는 일한다.

작동하지만 상상하는 방식으로 작동하지 않습니다. 유형이 아니라 문자열을 얻습니다. 이것을 예시로 보여주고 싶었지만 아래와 같은 오류가 발생했습니다.

그러나 이것이 당신이 옳다는 것을 의미하지는 않습니다. 실수로 또 다른 컴파일러 오류가 나타납니다.

 
컴파일 중 오류:
 void OnStart ()
{
    Print(typename("ushort"));      //(1) нормально
     Print ( typename ( typename ( '+' ))); //(2) Error: 'typename' - unexpected token
}

(1)과 (2)의 차이점은 무엇입니까? 개발자 여러분 - Roman 이 맞고 이제 typename이 유형을 반환합니까?

예상 결과: 문자열

 
A100 :

작동하지만 상상하는 방식이 아닙니다. 유형이 아니라 문자열을 얻습니다. 이것을 예를 들어 보여주고 싶었지만 오류가 발생했습니다.

그게 어떻게 유형이 아니지?
문자열이 아닌 유형만 얻습니다.
ushort는 문자열이 아닙니다.

 #define   A '+'

void OnStart ()
{
   Print ( typename (A));
   Print ( typename ( "string" ));
}
 2020.10 . 09 01 : 45 : 54.402 TestScript (MNQZ20,M1)   ushort
2020.10 . 09 01 : 45 : 54.402 TestScript (MNQZ20,M1)   string
 
Roman :

그게 어떻게 유형이 아니지?
문자열이 아닌 유형만 얻습니다.
ushort는 문자열이 아닙니다.

당신은 ushort를 얻는 것이 아니라 "ushort"를 얻습니다. 차이점이 명확합니까? 그렇지 않은 경우 이해할 때까지 설명서 를 읽으십시오.

결과적으로 실제 ushort를 얻는 것은 멋지겠지만!

 
A100 :

당신은 ushort를 얻는 것이 아니라 "ushort"를 얻습니다. 차이점이 명확합니까? 그렇지 않은 경우 이해할 때까지 설명서를 읽으십시오.

따라서 이것은 이미 Print()가 "ushort" 문자열 리터럴로 인쇄 됩니다.
이게 무슨 상관이야? typename이 유형 이름을 반환한다는 바로 그 사실!

 
Roman :

따라서 이것은 이미 Print()가 "ushort" 문자열 리터럴로 인쇄됩니다.
이게 무슨 상관이야? typename이 유형 이름을 반환한다는 바로 그 사실!

링크에 있는 문서를 읽으셨습니까? 거기에도 예가 있습니다. 불행히도 내 예 는 작동하지 않았습니다.

 
A100 :

링크에 있는 문서를 읽으셨습니까?

템플릿은 어떻습니까?
사용 구문이 템플릿용이 아닌 경우 이 경우입니다.

사유: