以下のstd::vecotr<>型でpush_back(); emplace_back()メンバで末尾に要素を足しているのですが提示コードの下の提案と思われるnote と警告文の意味がわかりません。つまりどうしろということなのでしょうか?また普通に実行できています。
#include "stdio.h" #include <vector> int main() { std::vector<int> idx; // std::vector<std::vector<int>> idx; // idx.push_back(2); idx.emplace_back(2); // printf("%zu\n",idx.size()); return 0; }
C:\Users\yw325\Desktop\test>cl *.cpp
Microsoft(R) C/C++ Optimizing Compiler Version 19.26.28806 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include\vector(748): warning C4530: C++ 例外処
理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include\vector(708): note: コンパイル対象の関数
テンプレート インスタンス化 'int *std::vector<int,std::allocator<int>>::_Emplace_reallocate<_Ty>(int *const ,_Ty &&)' のリファレンスを
確認してください
with
[
_Ty=int
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include\vector(708): note: コンパイル対象の関数
テンプレート インスタンス化 'int *std::vector<int,std::allocator<int>>::_Emplace_reallocate<_Ty>(int *const ,_Ty &&)' のリファレンスを
確認してください
with
[
_Ty=int
]
main.cpp(9): note: コンパイル対象の関数 テンプレート インスタンス化 'void std::vector<int,std::allocator<int>>::emplace_back<int>(int &&)' のリファレンスを確認してください
Microsoft (R) Incremental Linker Version 14.26.28806.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
main.obj
C:\Users\yw325\Desktop\test>main.exe
C:\Users\yw325\Desktop\test>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/26 04:25