Вы можете использовать вывод аргумента класса шаблона с std::function
:
template
struct split {
using StdFunctionType = decltype(std::function{std::declval()});
};
Когда у вас есть std::function
, соответствующее вашей лямбде, вы можете извлечь типы возврата и аргумента, используя специализацию шаблона. [1114 ]
Это работает, потому что std::function
имеет руководство по удержанию :
template
function(F) -> function*see below*/>;
Если
blockquote>decltype(&F::operator())
имеет формуR(G::*)(A...)
(опциональноcv
-качественно , опциональноnoexcept
, опционально lvalue ссылка квалифицирована) для некоторого типа классаG
, тогда выводимый тип -std::function
. Эта перегрузка участвует только в разрешении перегрузки, если&F::operator()
правильно сформирован, когда рассматривается как неоцененный операнд.
Вы создаете текстовый файл без любых встроенных разрывов строки, таким образом, каждый абзац является единственной "строкой", даже при том, что с разрывом строки и переносят набор, похоже, что они - несколько строк). Это то, почему, печатая повреждения в фиксированных местах. (Согласно http://www.vim.org/htmldoc/various.html#printing не кажется, что у Вас может быть разрыв строки/переносить уважения энергии во время печати.)
Для предотвращения этого, если Вы хотите, чтобы текст перенесся, в то время как Вы редактируете, сделать
set textwidth=70
переноситься в 70-м столбце. Если Вы хотите, чтобы Ваш файл имел длинные линии (например, таким образом, он форматирует прекрасный при загрузке в MS Word или что-то) то необходимо будет предварительно обработать текстовую версию прежде, чем распечатать его. Так, например, можно попробовать:
fmt file.txt | lpr
или если у Вас есть установленный enscript, необходимо смочь попробовать:
enscript --word-wrap file.txt
распечатать. Существующий файл может быть перенесен путем выполнения в энергии:
gggqG
то есть, 'строительное стекло' для движения, чтобы начать файла и 'gqG' переформатировать 'GQ' от текущей позиции (т.е. первая строка) к последней строке (путем движения в 'G') '. GQ' будет уважать Вашу текущую установку textwidth.