Вот минимальный воспроизводимый пример:
#include
#include
template
void addElement(std::vector& vec, T&& value) {
// Try to use emplace to add the element
vec.emplace(vec.end(), std::forward(value));
}
int main() {
std::vector numbers;
addElement(numbers, 42);
for(const auto& num : numbers) {
std::cout
Код: Выделить всё
error: 'class std::vector' has no member named 'emplace'
vec.emplace(vec.end(), std::forward(value));
^
Я попытался использовать emplace_back < /code> вместо этого, который работал: < /p>
< /li>
< /ol>
Код: Выделить всё
vec.emplace_back(std::forward(value));
< /code>
Я также попытался добавить флаг C ++ 11 при составлении: < /li>
< /ol>
g++ -std=c++11 main.cpp -o main
Подробнее здесь: https://stackoverflow.com/questions/796 ... template-f