以下函数derefItemX()在GCC 4.8-5.3上编译正常,但在CLang 3.8上失败:
//! Accessory Operations - template argument depended wrappers
template<bool SIMPLE> // For Nodes / non-scoped storage
struct Operations {
//! \brief Defererence wrapped or direct iterator
//!
//! \param iel IItemXT& - iterator to be dereferenced
//! \return ItemT& - resulting reference
template<typename IItemXT>
constexpr static auto& derefItemX(IItemXT& iel)
{
static_assert(is_base_of<std::forward_iterator_tag, typename IItemXT::iterator_category>::value
, "derefItemX(), IItemXT must be a forward iterator type");
return **iel; // Dereference an iterator of pointer to the value
}
}; …Run Code Online (Sandbox Code Playgroud) 如何使用lookbehind断言在Python中匹配r'\a' ?
实际上,我需要匹配 C++ 字符串,例如"a \" b"and
"str begin \
end"
Run Code Online (Sandbox Code Playgroud)
我试过:
>>> res = re.compile('(?<=\)a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 244, in _compile
raise error, v # invalid expression
>>> res = re.compile('(?<=\\)a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 244, in …Run Code Online (Sandbox Code Playgroud)