emplace_back разные определения

я использую emplace_back работает в проекте cpp в visual studio и работает правильно. Visual studio показывает следующее определение:

void std::vector<std::string>::emplace_back<CHAR(&)[1]>(CHAR(&_Val)[1])

Затем я собираюсь переместить файлы моего проекта cpp в проект MFC и использовать их в диалоговом приложении. Когда я переместил коды в проект MFC, emplace_back определение изменилось на:

void std::vector<std::string>::emplace_back<WCHAR(&)[1]>(WCHAR(&_Val)[1])

И это приводит к C2664 Ошибка в xmemory0 после сборки:

Error   C2664
std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char>> &)':
cannot convert argument 1 from 'WCHAR [1]' to 'std::initializer_list<_Elem>'

И в выводе это говорит:

note: see reference to function template instantiation 'void std::vector<std::string,std::allocator<_Ty>>::emplace_back<WCHAR(&)[1]>(WCHAR (&)[1])' being compiled
1>          with
1>          [
1>              _Ty=std::string
1>          ]

Как я могу справиться с такими проблемами? Есть ли возможность в свойствах Visual Studio Project исправить?

Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector