我基本上想要的是创建一个这样的函数:
void func(std::string_view... args)
{
(std::cout << ... << args);
}
Run Code Online (Sandbox Code Playgroud)
它应该只能用于可转换为的类std::string_view.
例:
int main()
{
const char* tmp1 = "Hello ";
const std::string tmp2 = "World";
const std::string_view tmp3 = "!";
func(tmp1, tmp2, tmp3, "\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
应该打印: Hello World!
到目前为止,我来到这里:
template<typename... types>
using are_strings = std::conjunction<std::is_convertible<types, std::string_view>...>;
template<typename... strings, class = std::enable_if_t<are_strings<strings...>::value, void>>
void func(strings... args)
{
(std::cout << ... << args);
}
int main()
{
const char* tmp1 = "Hello …Run Code Online (Sandbox Code Playgroud) 我想在所选完成的开头和结尾添加电力线字符,如下所示:
c并按下键启动完成菜单TAB。有什么方法可以让 zsh 看起来/行为像图片中那样吗?
在创建列以保持对齐正确时,应以某种方式考虑在开头添加的电力线三角形 + 空白字符和末尾的空白字符 + 电力线三角形。
在列表中每个补全内容的开头添加 2 个空格,这样当选择补全内容时,文本看起来就不会移到右侧。
(这个问题可以通过比较有选择和没有选择的完成情况来看出。)
如果不更改 zsh 源代码就无法实现先前解释的行为,是否至少可以仅在所选完成的末尾添加电力线三角形?
lc、rc和变量,但这没有帮助:
eclist-colorsma变量,但无法在开头正确插入字符: