[解決済み】関数呼び出し時に「制御の移行が初期化をバイパスする:」スイッチ
2022-02-02 07:25:12
質問事項
以下のスイッチをビルドしようとすると、"transfer of control bypasses initialization of:"というエラーが表示されます。
switch (retrycancel)
{
case 4: //The user pressed RETRY
//Enumerate all visible windows and store handle and caption in "windows"
std::vector<MainHandles::window_data> windows = MainHandles().enum_windows().get_results();
break;
case 2:
//code
}
私がenumerate関数を呼んでいることと関係があるようです。もし、switchの中から関数を呼び出すことが許されないのであれば、このような問題の回避策はあるのでしょうか?
解決方法は?
C++標準の6.6.4項を参照してください。
goto文は無条件に に制御を移します。 で示される識別子を持つ。この 識別子は、ラベル(6.1)でなければならない。 でなければならない。
C++標準の6.7項を参照してください。
に転送することは可能です。 ブロックがありますが をバイパスする方法ではありません。 初期化を伴う宣言 . A からジャンプするプログラム ローカル変数が自動的に 保存期間がスコープ内にない場合から を使用することはできません。 その変数がPODでない限り、不正な 型 (3.9) で宣言され、かつ イニシャライザー
強調表示
は私が追加しました。以来
switch
は本当に
goto
という動作が発生します。これを解決するために、どうしても
switch
switch (retrycancel)
{
case 4:
{
const std::vector<MainHandles::window_data> windows(
MainHandles().enum_windows().get_results()
);
break;
}
case 2:
//code
}
にリファクタリングするか
if
/
else
if (retrycancel == 4) {
const std::vector<MainHandles::window_data> windows(
MainHandles().enum_windows().get_results()
);
} else if (retrycancel == 2)
// code
} else {
...
}
を作成することで何を達成したいのか、私には明らかではありませんが。
windows
vector
の中に
switch
ので、設計を見直す必要があるかもしれません。
備考
を追加しました。
const
の修飾子を
windows
というのは、あなたの例では修正されていません。
関連
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] 関数/メソッドのキーワード 'inline' はいつ書けばよいのですか?
-
[解決済み】コールバックをわかりやすく説明するには?ある関数から別の関数を呼び出すのとはどう違うのですか?
-
[解決済み】60秒ごとに関数を呼び出す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++