Экземпляция функция шаблона с ограниченной концепциейC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Экземпляция функция шаблона с ограниченной концепцией

Сообщение Anonymous »

Я пытаюсь реализовать шаблон, используя глобально перегруженную функцию для выполнения пользовательских действий на подпись. Поскольку может быть группа типов (например, числовые типы), имеющая аналогичную реализацию, я пытался использовать концепции, чтобы охватить ее, но наткнулся на проблему, в которой компилятор не видит определение с концепцией без явного экземпляра.
msvc 17.13.0 (/std: c ++) PrettyPrint-Override ">

Код: Выделить всё

#include
#include 
#include 

template 
void bar(value_type value);

template 
void foo(value_type value)
{
bar(value);
}

template
void bar(value_type value)
{
std::println("bar(integral[{}])", value);
}

int main()
{
//bar(5);
foo(6);
}
< /code>
Программа выше не строится, потому что линкер не видит определение Bar < /code>: < /p>

неразрешенный внешний символ "void __cdecl bar (int)" (?? (?? $ foo@h @@ yaxh@z)

Хотя, если я не понаблюдаю линейную панель (5); 
in main () , он, очевидно, экстремится на шаблон, ограниченный концепцией, и результат будет правильным (но с дополнительным выводом из панели прямого вызова (5) )

bar (интеграл [5]) < /p>
bar (интеграл [6]) < /p>
< /blockquote>
Есть ли общий шаблон для решения такой задачи? По сути, я хочу, чтобы шаблон, получающий тип, смог найти подходящее определение функции шаблона (

Код: Выделить всё

void bar
в моем случае) сам.

Подробнее здесь: https://stackoverflow.com/questions/795 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»