質問者
pplxtasks.h内のRetuenAddressについて

質問
-
お世話になります。
C++のソースを作成し、ビルドしたところ、
以下の2件のメッセージが出力され、ビルドに失敗してしまいます。
E0020 識別子"_ReturnAddress"が定義されていません。
C3861 '_ReturnAddress';が見つかりませんでした。
ヘッダーファイル(pplxtasks.h)はMicrosoftから入手した内容から変更などはしていません。
開発環境は下記になります。
Windows 10 Pro
Visual Studio 2017 Comminity
ヘッダーファイルを見た限りでは、上記の関数は定義されているようでして、
対処方法が分からない状態です。
皆様のお力をお借りできませんでしょうか。
宜しくお願い致します。
- 種類を変更済み 立花楓Microsoft employee, Moderator 2017年6月5日 1:32
すべての返信
-
_ReturnAddress()関数を宣言しているのはintrin.hなので、事前に以下のインクルードを行っておくべきなのかもしれません。
#include <intrin.h>
Microsoftはプリコンパイルヘッダーを推進するためか、割とインクルードにルーズです。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年6月28日 6:19
-
<pplxtasks.h>は、Visual Studio 2017であれば、_MSC_VER 1910である為、
最終的に、#include <intrin.h>をインクルードしているので、
E0020 識別子"_ReturnAddress"が出ることはないと思うのですが。
<pplxtasks.h>
#if (defined(_MSC_VER) && (_MSC_VER >= 1800)) && !CPPREST_FORCE_PPLX
#include <ppltasks.h>
namespace pplx = Concurrency;
...
<ppltasks.h>
#ifndef _PPLTASKS_H
#define _PPLTASKS_H
#include <pplwin.h>
#include <functional>
#include <vector>
#include <utility>
#include <exception>
#include <algorithm>
#include <mutex>
#include <intrin.h>
...
<pplxtasks.h>でなくて、直接<ppltasks.h>をインクルードしても結果は同じなのでしょうか。- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年6月28日 6:19