Рассмотрим следующий пример < /p>
#include
int main() {
int i = 0;
int& r = i;
std::pair p{r, i};
int& ret = std::get(std::move(p));
}
< /code>
MSVC Скомпилируется приведенным выше примером, в то время как GCC не делает._EXPORT_STD template
_NODISCARD constexpr _Ty1&& get(pair&& _Pr) noexcept {
// get rvalue reference to element _Ty1 in pair _Pr
return _STD forward(_Pr.first);
}
< /code>
< /li>
gcc
template
constexpr _Tp&&
get(pair&& __p) noexcept
{ return std::move(__p.first); }
< /code>
< /li>
< /ul>
какой правильный?#include
int main() {
int i = 0;
int& r = i;
std::pair p{r, i};
int& ret = std::get(std::move(p));
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -be-compil
STD на основе типа :: get for std :: pare может быть составлен с MSVC, но не может быть составлен в GCC ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создание Public/Private Pare Pare с помощью Bouncy Castle или .NET RSACRYPTOServiceProvider
Anonymous » » в форуме C# - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Создание Public/Private Pare Pare с помощью Bouncy Castle или .NET RSACRYPTOServiceProvider
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как перенести варидовое количество `std :: pare` с разными 2 -м типами к функции
Anonymous » » в форуме C++ - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-