問題タブ [visual-c++-2019]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
47 参照

c++ - boost::array と std::array から std::string::assign を使用する非互換性

一部のレガシー コードは次のようになります。

stdC++ 17 に更新するときに同等のものを使用するようにコードを更新しています。直接の置き換えboostだと思っていarrayましたが、これを試すとコンパイル エラーが発生します。

エラー C2664: 'std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ::assign(std::initializer_list<_Elem>)': [ _Elem=wchar_t ] および [ _Ty= を使用して、引数 1 を 'std::_Array_iterator<_Ty,2001>' から 'std::initializer_list<_Elem>' に変換できませんwchar_t ] および [ _Elem=wchar_t ]

コードベースのかなりの場所でこのパターンを使用していますが、些細な修正はありますか? boost::array具体的にはとwhichの違いは何ですか?std::arrayこれは、ドロップイン交換とは見なされないことを意味しますか?

(私がこのコードを書いたわけではありません。また、なぜ単に を使用しないのかわかりませんwchar_t[]。おそらく、作成者はブーストの「新しい」機能が気に入っただけです。)

0 投票する
0 に答える
317 参照

c++ - .qmake.stash ファイルがありません

.qmake.stash ファイルを作成するのは誰ですか? いつ作成されますか?

私は Visual Studio で Qt を使用して Windows アプリケーションを作成して数年になりますが、このファイルを気にする必要はありませんでした。しかし、ARM64 で Linux 用のアプリケーションをビルドするために、WSL 1 を使用して Visual Studio でクロス コンパイルをセットアップしました。開発用コンピューターの VS ソリューションですべてのプロジェクトをビルドできます。現在、このクロス コンパイル システムを別の PC にセットアップしようとしています。このソリューションの最初のプロジェクトは問題なくビルドできましたが、2 番目のプロジェクトは失敗しました。

プロジェクトファイルと構成を比較して何時間も調査した結果、理由を見つけることができました.qmakeは、Makefileを作成する必要があるときにファイル.qmake.stashを見つけられませんでした。

作業中のプロジェクトには、中間出力パス $(IntDir) /obj//<vs_configuration> (例: myproject/obj/x64/RelArm64) に .qmake.stash ファイルがあります。失敗したプロジェクトの $(IntDir) にこのファイルがありません。このファイルを作業中のプロジェクトから他のプロジェクトに手動でコピーすると、それも機能します。

qmake を実行する前に、誰がこのファイルを $(IntDir) に置くべきでしたか?

作業中のプロジェクトの qmake.stash ファイルはかなり古いものです。そのため、すべてのビルドプロセス中に生成されないようです。