|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
||||||||||||||||
enable_if выдает "no matching function for call ." под GCC, хотя под MSVC все работает03.05.2021, 14:22. Показов 8882. Ответов 18
Добрый день,
Шаблон функции где я использую enable_if (объявление и реализация разнесены по разным хедерам): h5core.h:
h5baseimpl.cxx:
h5baseimpl.cxx:52: error: no matching function for call to ‘getEnumFromObj(h5gt::File&, std::string)’ h5baseimpl.cxx: In static member function ‘static bool H5BaseImpl::isContainer(h5gt::File, const h5geo::ContainerType&)’: h5baseimpl.cxx:52:64: error: no matching function for call to ‘getEnumFromObj(h5gt::File&, std::string)’ 52 | h5geo::ContainerAttributes::ContainerTyp e)}); | ^
0
|
||||||||||||||||
| 03.05.2021, 14:22 | |
|
Ответы с готовыми решениями:
18
Qwt не работает под компилятором MinGW, хотя запускается под msvc вместо того чтобы выдавать выпадающее меню под нужным оно под главной выдает хотя в скачиваемом файле все правильно. error: no matching function for call to ‘pow(, int)’ Выдает ошибку. Пересобирал код, так и не могу понять, где ошибка |
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 03.05.2021, 14:29 | |||
h5core.h?
1
|
|||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,517
|
|||||||
| 03.05.2021, 14:30 | |||||||
1
|
|||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||
| 03.05.2021, 14:31 | |||||||
|
Т.е. при успешной подстановке второй параметр вашей шаблонной функции будет выглядеть так:
1
|
|||||||
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
||
| 03.05.2021, 14:39 [ТС] | ||
|
DrOffset, в h5baseimpl.cxx я подключаю h5core.h:
#include "../include/h5geo/h5core.h" Добавлено через 7 минут eva2326, скорее логическое, спасибо. Но это не решило данной задачи. Но странно что под GCC не компилируется
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 03.05.2021, 14:43 | |
|
Kerim_Geophysic, попробуйте временно перенести реализацию из
h5core_misc.h в h5core.h (из h5core_misc.h убрать).
1
|
|
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
|||||||||||
| 03.05.2021, 14:51 [ТС] | |||||||||||
|
DrOffset, спасибо, это решает задачу. То есть если комментирую реализацию шаблона функции в
h5core_misc.h и переношу реализацию в h5core.h то ошибка уходит.Теперь задача разобраться почему не получается разнести объявление и реализацию по файлам В h5core.h (объявление) я подключаю h5core_misc.h (реализация). В h5baseimpl.cxx я подключаю h5core.h и использую этот шаблон функции.Объявление у меня в h5core.h:
h5core_misc.h:
0
|
|||||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 03.05.2021, 15:01 | ||
|
Проверьте include guards и порядок включения ваших файлов. Добавлено через 1 минуту Имейте в виду, что в конечном счете h5core_misc.h должен быть также подключен прямо или косвенно в h5baseimpl.cxx.
0
|
||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,517
|
|||
| 03.05.2021, 15:38 | |||
|
Вы либо точно знаете, что вам нужно, либо вы пишите код без понимания того, что вы делаете. В вашем случае должно быть логическое или. Было бы странно, если бы он скомпилировался. Проверьте настройки Visual Studio: Установлен ли ключ /permissive- Скорее всего он у вас не установлен
В этом случае компилятор позволяет себе отходить от стандарта. В частности, он использует однофазный поиск имен (gcc использует двухфазный, как это предписывает стандарт). Поведения Объяснение
1
|
|||
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
||||||
| 03.05.2021, 16:06 [ТС] | ||||||
|
eva2326, спасибо за разъяснения, я использую cmake вне визуал студио.
Попробовал добавить:
0
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 03.05.2021, 16:14 | |
|
Kerim_Geophysic, в данном случае двухфазный поиск не при чем. У вас просто каким-то образом получается ситуация, что компилятор видит только определение шаблона из
h5core_misc.h (где параметр по умолчанию у шаблона не задан, и не может быть выведен), но не видит объявление из h5core.h. Из-за невозможности вывести второй параметр у вас появляется ошибка "no matching function for call". Каким образом это возможно отсюда мне не видно, но я рискну предположить, что вы использовали одинаковые include guards на оба файла.
1
|
|
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
|
| 03.05.2021, 16:17 [ТС] | |
|
DrOffset, с момента предыдущего вашего поста я так же рассуждаю, но инклюд гуардс разные:
#ifndef H5CORE_H #define H5CORE_H и #ifndef H5CORE_MISC_H #define H5CORE_MISC_H
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 03.05.2021, 16:23 | |
|
Kerim_Geophysic, как вы обеспечиваете видимость
h5core_misc.h в h5baseimpl.cxx?
1
|
|
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
|||||||||||
| 03.05.2021, 16:26 [ТС] | |||||||||||
|
DrOffset, в
h5baseimpl.cxx:
h5core.h:
0
|
|||||||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 03.05.2021, 16:27 | ||
|
https://wandbox.org/permlink/gAGcexHMwdIf2Cyc
1
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 03.05.2021, 16:32 | |
Сообщение было отмечено Kerim_Geophysic как решение
Решение
1
|
|
|
Вездепух
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,181
|
||||||
| 03.05.2021, 16:42 | ||||||
|
Это, кстати, интересный вопрос. Это баг GCC? GCC не умеет "накапливать" аргументы по умолчанию для шаблонных параметров?
Clang и MSVC прекрасно компилируют это, GCC отказывается
1
|
||||||
|
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 491
|
|||||||
| 03.05.2021, 16:48 [ТС] | |||||||
|
zayats80888, идея интересная спасибо, и перекликается с утверждением DrOffset:
![]() Теперь буду разбираться почему я получаю ошибку:
0
|
|||||||
|
Вездепух
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,181
|
||
| 03.05.2021, 17:14 | ||
|
В вашем случае такой обязательности нет. И сражаетесь вы в данном случае именно с багом GCC (если я ничего не упускаю). MSVC же работает правильно, то есть никакой ошибки тут нет.
1
|
||
| 03.05.2021, 17:14 | |
|
Помогаю со студенческими работами здесь
19
No matching function for call to 'f1::f1()' No matching function for call to
No matching function for call to No matching function to call to Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|