エラー、バグ、質問 - ページ 1730 1...172317241725172617271728172917301731173217331734173517361737...3185 新しいコメント A100 2016.10.14 08:19 #17291 Ilyas: そうです、ここでのタイピングでは、T = A * です。すると、ここでコンパイルエラーが発生しますtemplate<typename T> void f1( const T const & a[] ) {} //error: 'const' - unexpected token class A {}; void f2( const A* const & a[] ) {} class B { void g1() const { f1( a ); } void g2() const { f2( a ); } A *a[]; }; Stanislav Korotky 2016.10.14 09:39 #17292 Sergei Vladimirov: その通りです。これだけの主張を読んでも、どこに問題があるのか理解できない。これらのファイルをフロッピーディスクに保存するのですか?50Kのファイルではなく、100Kのファイルを保存するとディスクが消耗する?(あなたにとって、それは面白いことではありませんか?)著作権文字(原則的に国際的であり、コードが127より大きいにもかかわらず、すべてのエンコーディングにある)1文字のために、意味もなくファイルサイズが 2倍になるのは正常でしょうか?賢いと思いませんか?なぜ不要なファイルを2倍も肥大化させるのか?問題なのはサイズだけでなく、文脈検索もです。ファイルがASCIIである限り、ファイルマネージャを含む多くのサードパーティ製プログラムを使用して、コンテキスト文字列を使用してファイルを検索することができます。ほぼ毎日使っています。ネイティブのMQエディタは、他の多くの明らかなコーディングの問題と同様に、この点ではゼロに等しいです。ユニコードができたところで、文脈検索には2つの問題があります。すべてのプログラムがそれを行えるわけではなく、また行えるプログラムでも、ポイント2である遅さが発生します。もちろん、ソフトウェアがいかに使いやすく効率的であるべきかを考えたり、少なくとも他の製品から学んだりするよりも、ハードディスクに加えてより速いコンピュータを購入する方が簡単だという人もいるでしょう。 A100 2016.10.14 13:37 #17293 A100:すると、ここでコンパイルエラーが発生しますC++でも型の曖昧さがある:const T constしかし、逃げ道はある - 右に便宜を図るtemplate<typename T>void f1( T const & a[] ) {} //error: 'const' - unexpected tokenclass 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++はエラーなくコンパイルできる(構文の違いを考慮すると) fxsaber 2016.10.14 13:41 #17294 A100:C++でも、型の曖昧さがある:const T constしかし、逃げ道はある - 右に便宜を図る C++はエラーなくコンパイルできる(構文の違いを考慮すると)しかし、論理的には「const A」と「A const」が同じ意味であるのはおかしいのです。おそらく、「Aconst*」は、constでないオブジェクトへの 定数ポインタなのでしょう。ということになりそうです。なぜなら、そのような構造が存在するからです。class A {};void f( const A const * const & a[] ) {}ポインタの変更、参照による変更、オブジェクト(複数可)の変更はできません。高速なコードを得るという観点から、このような構成は、コンパイラが必要とするヒントを与えることができるでしょうか? Sergei Vladimirov 2016.10.14 13:44 #17295 Stanislav Korotky:著作権文字1つで(コードが127より大きいにもかかわらず、原則的に国際的であり、すべてのエンコーディングに存在する)、ファイルサイズが2倍になるのは正常でしょうか...。 そうですね。どう考えても、マッチングでセーブする意味がないと思います。 fxsaber 2016.10.14 13:53 #17296 興味深いのは、この構造においてclass A {};void f( const A const * & a[] ) {}要素を変更することはできませんが、配列のサイズを変更 することは可能です。面白いことに、メソッドは以下のような形になることが判明しました。class A {};class B { const A const * Method( const A const * const & a[] ) const { return(a[0]); } }; A100 2016.10.14 13:54 #17297 fxsaber:Aconst*" は定数オブジェクトへの ポインタではなく、定数ポインタである可能性があります。 パターンでなければ、「A const *」は「const A *」に等しく、パターンであれば、その状況によって(C++で) fxsaber 2016.10.14 13:59 #17298 A100: パターンでなければ、「A const *」は「const A *」に等しく、パターンであれば、状況によって だから、等価性はないはずです。MQLは同等と見なしますがclass A{public: int i;};void f( A const * & a[] ){ a[0].i = 1; // 'i' - constant cannot be modified} 私見では、ここに誤りがあると思います。なぜなら、渡されるのは定数ポインタの配列(const *)であって、定数オブジェクトへの ポインタの配列(const A)ではないからです。 fxsaber 2016.10.14 14:07 #17299 A100: 具体的には以下の通り - 今後のhttps://www.mql5.com/ru/forum/1111/page1749#comment_2892563 で修正されます。 それなら、あなたの発言に等価性はないはずですA100: パターンでなければ,"A const *" は "const A *" に等しく,パターンであれば - その状況によって(C++で ) TheXpert 2016.10.14 14:19 #17300 fxsaber: こういうデザインだと面白いですね...。class A {};void f( const A const * & a[] ) {}の要素は変更できませんが、配列のサイズは変更可能です。 そうなんですか?それは残念だ、そんなことはないはずだ。 1...172317241725172617271728172917301731173217331734173517361737...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そうです、ここでのタイピングでは、T = A * です。
すると、ここでコンパイルエラーが発生します
その通りです。これだけの主張を読んでも、どこに問題があるのか理解できない。これらのファイルをフロッピーディスクに保存するのですか?
50Kのファイルではなく、100Kのファイルを保存するとディスクが消耗する?(あなたにとって、それは面白いことではありませんか?)
著作権文字(原則的に国際的であり、コードが127より大きいにもかかわらず、すべてのエンコーディングにある)1文字のために、意味もなくファイルサイズが 2倍になるのは正常でしょうか?賢いと思いませんか?なぜ不要なファイルを2倍も肥大化させるのか?
問題なのはサイズだけでなく、文脈検索もです。ファイルがASCIIである限り、ファイルマネージャを含む多くのサードパーティ製プログラムを使用して、コンテキスト文字列を使用してファイルを検索することができます。ほぼ毎日使っています。ネイティブのMQエディタは、他の多くの明らかなコーディングの問題と同様に、この点ではゼロに等しいです。ユニコードができたところで、文脈検索には2つの問題があります。すべてのプログラムがそれを行えるわけではなく、また行えるプログラムでも、ポイント2である遅さが発生します。
もちろん、ソフトウェアがいかに使いやすく効率的であるべきかを考えたり、少なくとも他の製品から学んだりするよりも、ハードディスクに加えてより速いコンピュータを購入する方が簡単だという人もいるでしょう。
すると、ここでコンパイルエラーが発生します
C++でも型の曖昧さがある:const T 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
しかし、逃げ道はある - 右に便宜を図る
C++はエラーなくコンパイルできる(構文の違いを考慮すると)しかし、論理的には「const A」と「A const」が同じ意味であるのはおかしいのです。
おそらく、「Aconst*」は、constでないオブジェクトへの 定数ポインタなのでしょう。
ということになりそうです。なぜなら、そのような構造が存在するからです。
void f( const A const * const & a[] ) {}
ポインタの変更、参照による変更、オブジェクト(複数可)の変更はできません。
高速なコードを得るという観点から、このような構成は、コンパイラが必要とするヒントを与えることができるでしょうか?
著作権文字1つで(コードが127より大きいにもかかわらず、原則的に国際的であり、すべてのエンコーディングに存在する)、ファイルサイズが2倍になるのは正常でしょうか...。
void f( const A const * & a[] ) {}
要素を変更することはできませんが、配列のサイズを変更 することは可能です。
面白いことに、メソッドは以下のような形になることが判明しました。
class B
{
const A const * Method( const A const * const & a[] ) const
{
return(a[0]);
}
};
Aconst*" は定数オブジェクトへの ポインタではなく、定数ポインタである可能性があります。
パターンでなければ、「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[] ) {}
の要素は変更できませんが、配列のサイズは変更可能です。