以下代码给出了以下警告。有人可以解释一下原因(注意代码没有用,因为我用int替换了我的类型来做一个完整的例子。)
警告:'MaxEventSize()
'函数使用'auto
'类型说明符而没有尾随返回类型[默认启用]
我们的想法是获得特定结构的最大大小(类型转到int
所在的位置)。
template<typename T>
constexpr T cexMax(T a, T b)
{
return (a < b) ? b : a;
}
constexpr auto MaxEventSize()
{
return cexMax(sizeof(int),
cexMax(sizeof(int),
sizeof(int)));
};
答案 0 :(得分:10)
auto
返回类型&#34;没有尾随返回类型&#34;是一个C ++ 14的功能,所以我想你正在编译C ++ 11。
使用C ++ 14你的代码是正常的,但是对于C ++ 11,如果你想使用auto
作为返回类型,你需要用这种方式描述有效的返回类型(注意:伪代码)
auto funcName (args...) -> returnType
您知道sizeof()
返回std::size_t
,因此您的示例可以更正为
constexpr auto MaxEventSize() -> std::size_t
{
return cexMax(sizeof(int),
cexMax(sizeof(int),
sizeof(int)));
};
或(愚蠢,在这种情况下,但在更复杂的例子中显示使用)
constexpr auto MaxEventSize() -> decltype( cexMax(sizeof(int),
cexMax(sizeof(int),
sizeof(int))) )
{
return cexMax(sizeof(int),
cexMax(sizeof(int),
sizeof(int)));
};
答案 1 :(得分:0)
为什么不只使用模板T?
替换行
Array
使用
from bs4 import BeautifulSoup as bs
html = '''
<div class="article-container">
<p>tekst 1</p> <!-- this tag -->
<p>none</p>
<p>tekst 2</p> <!-- this tag -->
<p>none</p>
<p>tekst 3</p> <!-- this tag -->
<p>none</p>
<p>tekst 4</p> <!-- this tag -->
</div>
'''
soup = bs(html, 'lxml')
#odd indices
items = [item.text for item in soup.select('.article-container p:nth-child(odd)')]
print(items)
#excluding None
items = [item.text for item in soup.select('.article-container p:not(:contains("none"))')]
print(items)
#including tekst
items = [item.text for item in soup.select('.article-container p:contains("tekst")')]
print(items)
#providing nth list
items = [item.text for item in soup.select('.article-container p:nth-of-type(1), .article-container p:nth-of-type(3), .article-container p:nth-of-type(5), .article-container p:nth-of-type(7)')]
print(items)
在C ++ 11上应该可以正常工作。