타자에 대한 질문 - 페이지 7

 
Dmitry Fedoseev :

글쎄, 사람들은 문제가 있습니다))) 쇼핑, 나는 그렇게 살았습니다!

그건 그렇고, d=array[5].to_double()을 작성하는 것이 d=(double)array[5]보다 훨씬 쉽습니다 . 그냥 점을 누르십시오. 그러나 우리는 쉬운 방법을 찾고 있지 않습니다 ...

d=(double)array[5]를 작성합니까? 이것이 아이디어입니다. 이러한 사소한 일에 신경 쓰지 마십시오. 다음은 실제 코드입니다.

MYCRTMFLT(i+ 1 , chart[MYSEG(MYSCNT-i).start].time,
               chart[MYSEG(MYSCNT-i).start].price,
               chart[MYSEG(MYSCNT-i).top].time,
               chart[MYSEG(MYSCNT-i).top].price, 
               chart[MYSEG(MYSCNT-i).top].price>chart[MYSEG(MYSCNT-i).start].price?
                 MYCLRUP : MYCLRDOWN, STYLE_SOLID , true );

차트[인덱스]는 구조체 {가격; 시각}. 그리고 대부분의 경우 컨텍스트에서 이해할 수 있는 .time/.price를 계속 추가하는 이유는 무엇입니까? 예, 때로는 프롬프트가 필요할 수 있지만(끝에서 두 번째 줄에서와 같이), 대부분의 경우 삶이 더 쉬워지고 쓰기가 줄어들 것입니다.

 
Dmitry Fedoseev :

글쎄, 사람들은 문제가 있습니다))) 쇼핑, 나는 그렇게 살았습니다!

그건 그렇고, d=array[5].to_double()을 작성하는 것이 d=(double)array[5]보다 훨씬 쉽습니다 . 그냥 점을 누르십시오. 그러나 우리는 쉬운 방법을 찾고 있지 않습니다 ...

예, 물론 컴파일 중에 d가 double 이외의 어떤 것도 될 수 없다는 것이 이미 알려진 경우 d=(double)array[5]를 반드시 작성해야 합니다. 쥐들은 울고, 찔렸지만 계속 선인장을 갉아먹었다...

 
Ilya Malev :

예, 물론, d=(double)array[5]를 작성해야 합니다. 컴파일 중에 d가 double 이외의 다른 어떤 것도 될 수 없다는 것을 이미 알고 있는 경우입니다. 쥐들은 울고, 찔렸지만 계속 선인장을 갉아먹었다...

이러한 목적을 위해 C++에서는 d에 대해 operator<=>를 오버로드하고 gaw하고 울지 않습니다 ;-)

PS/ 그리고 연관성과 우선 순위의 결과로 일반적으로 << 연산자를 더 적합하게 사용합니다.
 
pavlick_ :

d=(double)array[5]를 작성합니까? 이것이 아이디어입니다. 이러한 사소한 일에 신경 쓰지 마십시오. 다음은 실제 코드입니다.

차트[인덱스]는 구조체 {가격; 시각}. 그리고 대부분의 경우 컨텍스트에서 이해할 수 있는 .time/.price를 계속 추가하는 이유는 무엇입니까? 예, 때로는 프롬프트가 필요할 수 있지만(끝에서 두 번째 줄에서와 같이), 대부분의 경우 삶이 더 쉬워지고 쓰기가 줄어들 것입니다.

쓰기 (이중) - 내가 이해하는 것처럼 여기에서는 이를 오버로드하여 array[5]가 어떤 종류의 개체가 아니라 이중 숫자를 반환하도록 할 것입니다. 그렇지 않니?

위의 예에서 이해할 수 있는 이 문맥은 어디에 있습니까? 아마도 매개변수 유형이 MYCRTMFLT입니까? 이것은 반환 유형에 대한 오버로드입니다.

 
fxsaber :

당신이 정말로 그것을 원한다면, 당신은 할 수 있습니다

등.

  _W(Color)[ 2 ] = ( uchar ) 230 ;              // Записали по смещению 2 значение (uchar)230.
  PRINT(Color)                           // Убедились, что Color теперь C'241,248,230'
이것은 우연히 Print(ColorToString(Color&(uint(-1)&65535)|(230<<16))); ?

당신의 코드를 계속 연구하다 보면 내 머리가 깨질 것 같아 두렵습니다.

즉, 밑줄과 컨텍스트 확인 작업 이 포함된 풍부한 대문자를 제외하고는 방법의 모든 것이 놀랍습니다(농담 아님).

(컨텍스트 확인 작업)이 오버로드되도록 허용되면 라이브러리와 함께 아스트랄 평면으로 이동할 것이라고 생각합니다.lol:

 
Maxim Kuznetsov :

PS/ 그리고 연관성과 우선 순위의 결과로 일반적으로 << 연산자를 더 적합하게 사용합니다.

솔직히 말해서 나에게도 일어난 일이다. <<를 >>로 오버로드하고 문제를 일으키지 마십시오. 그러나 T() 과부하를 해결하는 것이 바람직하다는 것은 변하지 않습니다.

 
Dmitry Fedoseev :

내가 이해한 대로 (이중) 씁니다. 여기에 과부하가 걸리므로 array[5]는 어떤 종류의 개체가 아니라 이중 숫자를 반환합니다. 그렇지 않니?

위의 예에서 이해할 수 있는 이 문맥은 어디에 있습니까? 아마도 매개변수 유형이 MYCRTMFLT입니까? 이것은 반환 유형에 대한 오버로드입니다.

전혀 문제가 없다고 봅니다.

 double d;
d = chart[i];   // call operator double

void f( datetime t);
f(chart[i]);   // call operator datetime

매크로는 결국 식별자 또는 함수 호출 로 끝납니다. 여기서 컴파일러는 컨텍스트에서 원하는 것을 이해할 수 있습니다. 그리고 그렇지 않다면(모호성에 대한 저주가 있는 컴파일러 오류), 항상 그를 도울 수 있습니다: chart[i].price

 
Ilya Malev :

예, 물론 컴파일 중에 d가 double 이외의 어떤 것도 될 수 없다는 것이 이미 알려진 경우 d=(double)array[5]를 반드시 작성해야 합니다. 쥐는 울고, 찔렸지만 계속 선인장을 갉아먹었다...

d 외에도 array라는 것이 있습니다.

컴파일러가 부적절한 유형 할당에 대해 경고하는 것도 나쁘지 않습니다. 이것을 작성한 사람이 결과에 대한 전적인 책임을 진다는 것을 컴파일러에게 보여줘야 나중에 컴파일러 경고 가 없다는 불만이 없습니다.

 
pavlick_ :

전혀 문제가 없다고 봅니다.

...

그래서 나도.
 
Dmitry Fedoseev :

컴파일러가 부적절한 유형 할당에 대해 경고하는 것도 나쁘지 않습니다. 이것을 작성한 사람이 결과에 대한 전적인 책임을 진다는 것을 컴파일러에게 보여줘야 나중에 컴파일러 경고 가 없다는 불만이 없습니다.

그 자신이 이 할당에 대해 operator double(){...} 메서드를 정의한 경우에만 해당되지 않습니다. 분명히 나중에 이중 변수 뒤에 쓰기(이중)하거나 컴파일러 경고를 수신하기 위한 것이 아닙니다.

일반적으로 대화는 분명히 이미 서클에서 진행되고 있습니다. 시간이 지남에 따라 형식 오버로딩이 계속 허용되기를 바랍니다. 설정에서 어딘가에 확인하여 활성화하고 "동의합니다. 결과에 대한 전적인 책임"