エラー、バグ、質問 - ページ 1923

 
fxsaber:

ヘルプには、次のように書かれています。初期値の指定がない場合、静的メモリクラス 変数はゼロの初期値をとる。それに、テンプレートがなくても大丈夫

 
A100:

ヘルプにはこう書いてある。初期値を指定しない場合、静的メモリクラス 変数はゼロの初期値を取る

テンプレートの場合、足がどこから来るのか、おおよその見当がつくので、すべての場面でテンプレートのラインを単純に追加することはできない、という理解です。

技術的には間違いないでしょう。とはいえ、ドキュメントからの引用文は、テンプレートが登場するずっと前に書かれたもので、やや不正確な気もしますが。

 
fxsaber:

ドキュメントからの引用文は、テンプレートが利用できるようになるずっと前に書かれたもので、やや不正確な表現だと思いますが。

ドキュメントには、「静的 クラスのメンバは必要な値で明示的に初期化 する必要があります」という逆の記述があります。テンプレートはこれに影響を与えないので、テンプレートがある場合とない場合の両方でエラーが発生しなければならないし、発生してはならない
 
MetaTrader 5 build 1619 started (MetaQuotes Software Corp.)
Microsoft Windows XP (X86 based PC), IE 08.00, Intel Core2 Duo  T7700 @ 2.40 GHz, RAM: 2359 / 3581 Mb, HDD: 17612 / 27784 Mb, GMT+02:00
C:\Program Files\MetaTrader 5

アップデート後、MetaEditorが起動しなくなり、次のエラーが発生します。


1616は問題なく動作しましたが、1619は動作しませんでした。

F4キーを押した後のターミナルログで

2017.07.07 12:00:30.109 Error   MetaEditor not found
2017.07.07 12:39:54.296 Error   MetaEditor not found
 
A100:

あなたのIMHOの意味がよくわからないのですが。build <= 1596 (32bit)で確認(1行でもすぐに.logファイルに出力[5-10秒])してください。1分前に確認しました。

(静流の声) どのキャッシュ? (静流の声) どのキャッシュ? (静流の声) どこかで何かあったんでしょ?

ExpertsタブとMQL5Logsフォルダの話です。

私たちの経験の中にある矛盾を微妙に示唆する、生来のデリカシーから書かれたものだと私は思います。私にとって、5~10秒は決して即物的なものではありません。そして、その遅れは、私の観察によれば、必ずしも秒単位に限られたものではありません。

[キャッシュはキャッシュ、今までずっとそうだった、遅延ログの問題はすでにこのフォーラムで議論されている - もしあなたにとって本当に重要なら - 検索してください]。

 
Stanislav Korotky:

私にとって、5~10秒は決して即物的なものではありません。そして、この遅れは、私の観察によれば、必ずしも秒単位に限られたものではありません。

以前は5-10秒(場合によってはそれ以上)でしたが、現在は「表示」メニューなし - ログがまったく更新されません(!)(1日の始まりが数時間経過しているため、ファイルはゼロになり、「エキスパート」タブにはその日の新しい行が 表示されます)。神話上の「数ナノ秒」の端末加速のために、通常のロギングが中断される
 

コンパイルエラー

struct A {
        A() {}
        int aa;
};
struct B {
        static A a;
};
A B::a;
template<typename T>
struct C {
        static T a;
};
template<typename T>
T C::a;
void OnStart()
{
        B    x1;
        Print( x1.a.aa ); //нормально
        C<A> x2;
        Print( x2.a.aa ); //unresolved static variable 'C<A>::a'
}
前のケースのように聞こえるhttps://www.mql5.com/ru/forum/1111/page1943#comment_5410554 しかし、ここでT C::a = 0; // A::A( int ) を指定してもエラーを隠せません。
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.07.06
  • www.mql5.com
Форум алго-трейдеров MQL5
 

実行中のエラー

void OnStart()
{
        string text = "1234\0";
        Print(  "1>'",    text, "'" ); //не выводит завершающую кавычку
        printf( "2>'%s'", text );      //нормально
}

結果

1>'1234
2>'1234'

 

コンパイルエラー

#define  MACRO( x )      Print( x )
void OnStart()
{
        MACRO/**/( 10 ); //error: '' - argument expected for the function-like macro
}
 

その逆が予想された

class A {};
struct B {
        const A *       a1;   //(1) есть сообщение об ошибке
              A * const a2;   //(2) нет сообщения
};
void OnStart()
{
        B b1;
        B b2;
        b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}
  1. 構造体Bに(1)の行だけが含まれている場合 -エラーメッセージが 表示されます。
  2. 構造体Bに(2)の行のみが含まれる場合 - エラーメッセージなし
  3. その逆が予想された

また、1.と2.のいずれの場合も、エラーは発生しないものと思われます。

void OnStart()
{
        B b1;
        B b2 = b1; //error: '=' - not allowed for objects with protected members or inheritance
}
理由: