Здравствуйте, Sni4ok, Вы писали:
W>>С какой строчкой конкретно вы готовы спорить?
S>я не abyx, но ответ на ваш вопрос гуглится за 15 секунд.
Если глядя на этот код сразу хочется загуглить "uniform initialization C++11", то всё здорово — за 15 секунд можно уложиться.
x.push_back({1, 10.0f});
Здравствуйте, Went, Вы писали:
W>1. Что такое {1, 10.0f} в данном случае? Это же не список инициализации (там аргументы однотипные). При попытке вытащить тип через auto или decltype получаю странные ошибки.
https://ru.wikipedia.org/wiki/C%2B%2B11#.D0.A3.D0.BD.D0.B8.D0.B2.D0.B5.D1.80.D1.81.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.B8.D0.BD.D0.B8.D1.86.D0.B8.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F
Мне просто интересно. "-1" означает несогласие с мнением автора поста. С какой строчкой конкретно вы готовы спорить? Вы спорите с моим незнанием языка?
Здравствуйте, Went, Вы писали:
W>Мне просто интересно. "-1" означает несогласие с мнением автора поста. С какой строчкой конкретно вы готовы спорить? Вы спорите с моим незнанием языка?
Он слишком крут что бы отвечать на простые вопросы, но слишком вежлив (или ленив) что бы писать RTFM. Поэтому ставит минус
Здравствуйте, наткнулся на интересную (для меня) фичу С++11 в 13-ой студии (может и не только там, но пока с другими компиляторами по С++11 не работал). Такой код:
void f()
{
std::vector<std::pair<int, float>> x;
x.push_back({1, 10.0f});
}
Я так написал, и оно заработало. Не врубаюсь, чес сказать, почему. Дебаггер заходит в такой конструктор:
template<class _Other1,
class _Other2,
class = typename enable_if<is_convertible<_Other1, _Ty1>::value
&& is_convertible<_Other2, _Ty2>::value,
void>::type>
pair(_Other1&& _Val1, _Other2&& _Val2)
_NOEXCEPT_OP((is_nothrow_constructible<_Ty1, _Other1&&>::value
&& is_nothrow_constructible<_Ty2, _Other2&&>::value))
: first(_STD forward<_Other1>(_Val1)),
second(_STD forward<_Other2>(_Val2))
{ // construct from moved values
}
Он явно принимает два значения. И я не понимаю:
1. Что такое {1, 10.0f} в данном случае? Это же не список инициализации (там аргументы однотипные). При попытке вытащить тип через auto или decltype получаю странные ошибки.
2. Как это что-то смогло пролезть в конструктор с двумя аргументами?
3. Насколько такое поведение стандартно?
Здравствуйте, Went, Вы писали:
W>Мне просто интересно. "-1" означает несогласие с мнением автора поста. С какой строчкой конкретно вы готовы спорить? Вы спорите с моим незнанием языка?
Странно, вроде бы Вы давно на формуе, и до сих пор не знаете о риторическом характере сабжа?