У меня есть простая функция, как это в test.h заголовкеПо умолчанию параметр шаблона не найден, если заголовок в скомпилированных заголовков Xcode
template <class Dst = std::string, class T>
Dst format(const T&);
template <class Dst, Class T>
Dst format(const T&)
{
return Dst();
}
в test.cpp
#include "stdafx.h"
#include "test.h"
#include <iostream>
int main(int argc , char** argv)
{
std::string f = format("");
std::cout << f;
return 0;
}
, если этот заголовок добавлен в предварительно скомпилированный заголовок в xcode
код не компилируется.
Я получаю сообщение об ошибке «отсутствие соответствия функций».
если я вручную добавить параметр по умолчанию для вызова функции
format<std::string>();
затем он работает.
Если вместо объявления и определения я оставляю только определение ... оно компилируется.
Пожалуйста, попробуйте создать [Minimal, полный и Проверяемость пример] (Http: // StackOverflow. com/help/mcve) неудачного кода, чтобы показать нам. И, пожалуйста, укажите фактические ошибки, которые вы получаете в теле вопроса. –