Строительный код ниже с G ++ 10 сбой с ошибкой: < /p>
ui/file_grid.cpp: In member function 'const wxSize& {anonymous}::GridDataBase::getTextExtentBuffered(wxDC&, const wstring_view&)':
ui/file_grid.cpp:362:43: error: no matching function for call to 'std::unordered_map::find(const wstring_view&)'
362 | auto it = compExtentsBuf.find(text);
| ^
compilation terminated due to -Wfatal-errors.
< /code>
code: < /p>
struct SharedComponents //...between left, center, and right grids
{
...
std::unordered_map compExtentsBuf_; //buffer expensive wxDC::GetTextExtent() calls!
}
const wxSize& getTextExtentBuffered(wxDC& dc, const std::wstring_view& text)
{
auto& compExtentsBuf = sharedComp_.ref().compExtentsBuf_;
//- only used for parent path names and file names on view => should not grow "too big"
//- cleaned up during GridDataBase::setData()
assert(!contains(text, L'\n'));
auto it = compExtentsBuf.find(text);
if (it == compExtentsBuf.end())
it = compExtentsBuf.emplace(text, dc.GetTextExtent(copyStringTo(text))).first;
//GetTextExtent() returns (0, 0) for empty string!
return it->second;
}
< /code>
Stringhash & Stringequal < /p>
template Num hashString(const S& str);
template inline
Num hashString(const S& str)
{
using CharType = GetCharTypeT;
const auto* const strFirst = strBegin(str);
FNV1aHash hash;
std::for_each(strFirst, strFirst + strLength(str), [&hash](CharType c) { hash.add(c); });
return hash.get();
}
template bool equalString (const S& lhs, const T& rhs);
template inline
bool equalString(const S& lhs, const T& rhs)
{
const size_t lhsLen = strLength(lhs);
return lhsLen == strLength(rhs) && impl::equalSubstring(strBegin(lhs), strBegin(rhs), lhsLen);
}
struct StringHash
{
using is_transparent = int; //enable heterogenous lookup!
template
size_t operator()(const String& str) const { return hashString(str); }
};
struct StringEqual
{
using is_transparent = int; //enable heterogenous lookup!
template
bool operator()(const String1& lhs, const String2& rhs) const { return equalString(lhs, rhs); }
};
, в то время как это хорошо накапливается с G ++-12, он не работает на g ++-10. g ++ жаловался бы.
В указанной странице упоминается необходимость либо C ++-11, либо C ++-20, что, кстати, уже включена в команде компиляции.
Есть ли простой способ сделать эту сборку? Я не знаю C ++, и я пытаюсь сделать эту сборку с G ++-10, чтобы вернуть программное обеспечение. Я попробовал wstring вместо wstring_view , но затем он не удается где -то еще. Если это слишком сложно, я бы предпочел прервать задачу, но справка ценится. < /P>
Команда сборки: < /p>
g++-10 -Wdate-time -D_FORTIFY_SOURCE=2 -DAPP_NAME_SUFFIX='L" for Ubuntu"' -g -O2 -fdebug-prefix-map=/mnt/packages/git_repos/dpkg/freefilesync=. -fstack-protector-strong -Wformat -Werror=format-security -g -std=gnu++20 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized -DNDEBUG `wx-config --version=3.0 --cxxflags --debug=no` -pthread `pkg-config --cflags openssl` `pkg-config --cflags libcurl` `pkg-config --cflags libssh2` `pkg-config --cflags gtk+-3.0` -isystem/usr/include/gtk-3.0 `pkg-config --cflags libselinux` -DHAVE_SELINUX `pkg-config --cflags zlib` -c ui/file_grid.cpp -o /tmp/FreeFileSync_Make/ffs/src/ui/file_grid.cpp.o
< /code>
g ++ версия: < /p>
g++-10 (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
Подробнее здесь: https://stackoverflow.com/questions/794 ... wstring-vi
Нет сопоставления функции для вызова ⇐ C++
Программы на C++. Форум разработчиков
1741350003
Anonymous
Строительный код ниже с G ++ 10 сбой с ошибкой: < /p>
ui/file_grid.cpp: In member function 'const wxSize& {anonymous}::GridDataBase::getTextExtentBuffered(wxDC&, const wstring_view&)':
ui/file_grid.cpp:362:43: error: no matching function for call to 'std::unordered_map::find(const wstring_view&)'
362 | auto it = compExtentsBuf.find(text);
| ^
compilation terminated due to -Wfatal-errors.
< /code>
code: < /p>
struct SharedComponents //...between left, center, and right grids
{
...
std::unordered_map compExtentsBuf_; //buffer expensive wxDC::GetTextExtent() calls!
}
const wxSize& getTextExtentBuffered(wxDC& dc, const std::wstring_view& text)
{
auto& compExtentsBuf = sharedComp_.ref().compExtentsBuf_;
//- only used for parent path names and file names on view => should not grow "too big"
//- cleaned up during GridDataBase::setData()
assert(!contains(text, L'\n'));
auto it = compExtentsBuf.find(text);
if (it == compExtentsBuf.end())
it = compExtentsBuf.emplace(text, dc.GetTextExtent(copyStringTo(text))).first;
//GetTextExtent() returns (0, 0) for empty string!
return it->second;
}
< /code>
Stringhash & Stringequal < /p>
template Num hashString(const S& str);
template inline
Num hashString(const S& str)
{
using CharType = GetCharTypeT;
const auto* const strFirst = strBegin(str);
FNV1aHash hash;
std::for_each(strFirst, strFirst + strLength(str), [&hash](CharType c) { hash.add(c); });
return hash.get();
}
template bool equalString (const S& lhs, const T& rhs);
template inline
bool equalString(const S& lhs, const T& rhs)
{
const size_t lhsLen = strLength(lhs);
return lhsLen == strLength(rhs) && impl::equalSubstring(strBegin(lhs), strBegin(rhs), lhsLen);
}
struct StringHash
{
using is_transparent = int; //enable heterogenous lookup!
template
size_t operator()(const String& str) const { return hashString(str); }
};
struct StringEqual
{
using is_transparent = int; //enable heterogenous lookup!
template
bool operator()(const String1& lhs, const String2& rhs) const { return equalString(lhs, rhs); }
};
, в то время как это хорошо накапливается с G ++-12, он не работает на g ++-10. g ++ жаловался бы.
В указанной странице упоминается необходимость либо C ++-11, либо C ++-20, что, кстати, уже включена в команде компиляции.
Есть ли простой способ сделать эту сборку? Я не знаю C ++, и я пытаюсь сделать эту сборку с G ++-10, чтобы вернуть программное обеспечение. Я попробовал wstring вместо wstring_view , но затем он не удается где -то еще. Если это слишком сложно, я бы предпочел прервать задачу, но справка ценится. < /P>
Команда сборки: < /p>
g++-10 -Wdate-time -D_FORTIFY_SOURCE=2 -DAPP_NAME_SUFFIX='L" for Ubuntu"' -g -O2 -fdebug-prefix-map=/mnt/packages/git_repos/dpkg/freefilesync=. -fstack-protector-strong -Wformat -Werror=format-security -g -std=gnu++20 -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized -DNDEBUG `wx-config --version=3.0 --cxxflags --debug=no` -pthread `pkg-config --cflags openssl` `pkg-config --cflags libcurl` `pkg-config --cflags libssh2` `pkg-config --cflags gtk+-3.0` -isystem/usr/include/gtk-3.0 `pkg-config --cflags libselinux` -DHAVE_SELINUX `pkg-config --cflags zlib` -c ui/file_grid.cpp -o /tmp/FreeFileSync_Make/ffs/src/ui/file_grid.cpp.o
< /code>
g ++ версия: < /p>
g++-10 (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
Подробнее здесь: [url]https://stackoverflow.com/questions/79486561/no-matching-function-for-call-to-stdunordered-map-findconst-wstring-vi[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия