Имея следующий код:Могу ли я использовать объект функции без создания экземпляра?
template<typename T, typename OutStream = std::ostream> struct print {
OutStream &operator()(T const &toPrint, OutStream &outStream = std::cout) const {
outStream << toPrint;
return outStream;
}
};
Этот вызов является ошибочным: сообщение
print<int>(2);
Ошибка:
1>main.cpp(38): error C2440: '<function-style-cast>' : cannot convert from 'int' to 'print<T>'
1> with
1> [
1> T=int
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous
Этот вызов не является ошибочным:
print<int> intPrinter;
intPrinter(2);
Можно ли каким-либо образом использовать объект функции без его создания? Здесь я не могу использовать функцию шаблона, потому что мне нужны частичные возможности специализации.
Ты замечательный. Благодаря! – DaddyM