Код: Выделить всё
const :: a -> b -> a
const x = \_ -> x
< /code>
, которая возвращает функцию, которая оценивается в исходный аргумент Const, независимо от того, какой аргумент предоставлен для нее. Я хотел бы создать что -то подобное в C ++ 11. Такие конструкции полезны для обозначения особого поведения в функциях (постоянная функция истинного, отправленного фильтру, оставит данные нетронутыми). Вот моя первая попытка: < /p>
template
std::function constF(T x) {
return ([x](...) { return x; });
}
< /code>
Это компилируется самостоятельно, но любая попытка использовать его приводит к ошибкам неполного типа. Моя вторая попытка была следующая: < /p>
template
std::function constF(T x) {
return ([x](Args...) { return x; });
}
< /code>
Это приближается, но не позволяет мне предоставить какие -либо аргументы, если я явно их не укажу. < /p>
auto trueFunc1 = constF(true);
auto trueFunc2 = constF(true);
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/17890513/haskell-like-const-in-c[/url]