根据我的研究,表达式"[:alpha:]"将匹配任何字母字符,但表达式只匹配小写字符而不是大写字符.我不确定它有什么问题.
std::regex e ("[:alpha:]");
if(std::regex_match("A",e))
std::cout<<"hi";
else
std::cout<<"no";
Run Code Online (Sandbox Code Playgroud) 我使用折叠表达式来打印可变参数包中的元素,但是如何在每个元素之间获得空格?
目前输出为"1 234",所需输出为"1 2 3 4"
template<typename T, typename Comp = std::less<T> >
struct Facility
{
template<T ... list>
struct List
{
static void print()
{
}
};
template<T head,T ... list>
struct List<head,list...>
{
static void print()
{
std::cout<<"\""<<head<<" ";
(std::cout<<...<<list);
}
};
};
template<int ... intlist>
using IntList = typename Facility<int>::List<intlist...>;
int main()
{
using List1 = IntList<1,2,3,4>;
List1::print();
}
Run Code Online (Sandbox Code Playgroud) 我试图使用if-constexpr检查一些东西,但我遇到了类似的错误
预期'('之前'constexpr'
没有先前'if'的'else'
到目前为止,我检查我的代码没有任何问题
我的编译标志是g ++ -std = c ++ 17 main.cpp
#include <iostream>
template<typename T, typename Comp = std::less<T> >
struct Facility
{
template<T ... list>
struct List
{
static void print()
{
std::cout<<"\""<<"Empty List"<<"\""<<"\n";
}
};
template<T head,T ... list>
struct List<head,list...>
{
static void print()
{
std::cout<<"\"" << head;
((std::cout << " " << list), ...);
std::cout<<"\""<<"\n";
}
};
template<unsigned N,typename AA>
struct RemoveFirst{};
template<unsigned N,T head,T ... Rest>
struct RemoveFirst<N,List<head,Rest...>>
{
struct result
{
static void …Run Code Online (Sandbox Code Playgroud)