Sergei Vladimirov : 정확히. 이 모든 주장을 읽었지만 문제가 어디에 있는지 파악할 수 없습니다. 이 파일을 플로피 디스크에 저장하시겠습니까?
50킬로바이트가 아닌 100킬로바이트 파일을 저장하면 디스크가 마모됩니까? 자체가 웃기지 않습니까? )
그리고 하나의 저작권 기호(코드가 127보다 크다는 사실에도 불구하고 원칙적으로 국제적이고 모든 인코딩에 존재함) 때문에 파일 크기 가 아무 의미 없이 두 배로 늘어나는 것이 정상입니까? 똑똑하죠? 파일을 불필요하게 2배 팽창시키는 이유는 무엇입니까?
문제는 크기뿐만 아니라 문맥 검색에도 있습니다. 파일이 ASCII 형식이면 파일 관리자를 비롯한 많은 타사 프로그램이 컨텍스트 문자열로 파일을 검색할 수 있습니다. 나는 이것을 거의 매일 사용합니다. 이와 관련하여 기본 MQ 편집기는 다른 많은 명백한 코딩 문제에서와 마찬가지로 0입니다. 유니코드를 얻자마자 컨텍스트 검색에 2가지 문제가 발생합니다. 먼저 인코딩을 "이해"한 다음 단일 형식으로 정규화(예: 모든 ASCII를 즉시 유니코드로 인코딩)한 다음 "검색"해야 합니다. 모든 프로그램이 이를 수행할 수 있거나 원하는 것은 아니지만 그것은 할 수 있습니다, 우리는 포인트 2 - 브레이크를 얻습니다.
물론 어떤 사람들에게는 나사 외에 새 컴퓨터를 사는 것이 편리하고 효과적인 소프트웨어가 무엇인지 생각하거나 적어도 다른 제품의 예에서 배우는 것보다 쉽습니다.
맞습니다. 여기에 입력할 때 T = A *
다음은 컴파일 오류입니다.
정확히. 이 모든 주장을 읽었지만 문제가 어디에 있는지 파악할 수 없습니다. 이 파일을 플로피 디스크에 저장하시겠습니까?
50킬로바이트가 아닌 100킬로바이트 파일을 저장하면 디스크가 마모됩니까? 자체가 웃기지 않습니까? )
그리고 하나의 저작권 기호(코드가 127보다 크다는 사실에도 불구하고 원칙적으로 국제적이고 모든 인코딩에 존재함) 때문에 파일 크기 가 아무 의미 없이 두 배로 늘어나는 것이 정상입니까? 똑똑하죠? 파일을 불필요하게 2배 팽창시키는 이유는 무엇입니까?
문제는 크기뿐만 아니라 문맥 검색에도 있습니다. 파일이 ASCII 형식이면 파일 관리자를 비롯한 많은 타사 프로그램이 컨텍스트 문자열로 파일을 검색할 수 있습니다. 나는 이것을 거의 매일 사용합니다. 이와 관련하여 기본 MQ 편집기는 다른 많은 명백한 코딩 문제에서와 마찬가지로 0입니다. 유니코드를 얻자마자 컨텍스트 검색에 2가지 문제가 발생합니다. 먼저 인코딩을 "이해"한 다음 단일 형식으로 정규화(예: 모든 ASCII를 즉시 유니코드로 인코딩)한 다음 "검색"해야 합니다. 모든 프로그램이 이를 수행할 수 있거나 원하는 것은 아니지만 그것은 할 수 있습니다, 우리는 포인트 2 - 브레이크를 얻습니다.
물론 어떤 사람들에게는 나사 외에 새 컴퓨터를 사는 것이 편리하고 효과적인 소프트웨어가 무엇인지 생각하거나 적어도 다른 제품의 예에서 배우는 것보다 쉽습니다.
다음은 컴파일 오류입니다.
C++에서도 모호성을 입력하십시오. const T const
그러나 탈출구가 있습니다 - const를 오른쪽으로 재배열하십시오
void f1( T const & a[] ) {} //error: 'const' - unexpected token
class A {};
void f2( A const * const & a[] ) {} //нормально
class B {
void g1() const { f1( a ); } //error: 'f1' - cannot to apply function template
void g2() const { f2( a ); } //нормально
A *a[];
};
C++에서도 모호성을 입력하십시오. const T const
그러나 탈출구가 있습니다 - const를 오른쪽으로 재배열하십시오
C++는 오류 없이 컴파일됩니다(구문 차이 고려).그러나 논리적으로 "const A"와 "A const"가 같은 것을 의미할 때 이상하게 나타납니다.
" A const * "가 const 객체 가 아닌 const 포인터일 가능성이 있습니다.
그것은 처럼 보인다. 왜냐하면 그런 구조가 존재한다
void f( const A const * const & a[] ) {}
포인터를 변경할 수 없으며 참조로 변경할 수 없으며 개체를 변경할 수 없습니다.
빠른 코드를 얻는 관점에서 이러한 구성은 컴파일러에 필요한 힌트를 줄 수 있습니까?
그리고 하나의 저작권 기호(코드가 127보다 크다는 사실에도 불구하고 원칙적으로 국제적이고 모든 인코딩에 있음)로 인해 파일 크기가 2배 증가하는 것이 정상입니다...
void f( const A const * & a[] ) {}
요소는 변경할 수 없지만 배열의 크기는 변경할 수 있습니다.
쿨, 방법이 다음과 같이 보일 수 있음이 밝혀졌습니다.
class B
{
const A const * Method( const A const * const & a[] ) const
{
return (a[ 0 ]);
}
};
" A const * "가 const 객체 가 아닌 const 포인터일 가능성이 있습니다.
템플릿이 아닌 경우 "A const *"는 "const A *"와 동일하고 템플릿인 경우 상황에 따라
{
public :
int i;
};
void f( A const * & a[] )
{
a[ 0 ].i = 1 ; // 'i' - constant cannot be modified
}
특히 이것은 미래에 수정되었습니다. https://www.mql5.com/ru/forum/1111/page1749#comment_2892563
템플릿이 아닌 경우 "A const *"는 "const A *"와 동일 하며 템플릿인 경우 상황에 따라(C++에서)
흥미롭게도 그러한 디자인에서
void f( const A const * & a[] ) {}
요소는 변경할 수 없지만 배열의 크기는 변경할 수 있습니다.