Есть ли разница при определении переменной в стеке?
Есть ли разница между:
vector<int> vec();
и
vector<int> vec = vector<int>();
Просто у меня intellisense работает только во втором случае, потому я всегда его использовал, но хочу знать имеет ли это последствия.
Ответы (2 шт):
Автор решения: user7860670
→ Ссылка
Первое объявляет функцию с именем vec с сигнатурой (void) -> vector<int> (most vexing parse), второе страдает от копипасты. Правильно делать так vector<int> vec{};
Автор решения: KoVadim
→ Ссылка
В первом случае Вы объявляете функцию vec:) -это известная проблема в с++ https://en.wikipedia.org/wiki/Most_vexing_parse
можно просто писать
vector<int> vec;
работать будет хорошо и правильно.