我想在代码块中选择数据类型时更加迂腐,我需要在一般类型或容器类型之间进行选择。我的问题是,如果我有以下代码块,我不知道该怎么做。有人可以帮忙吗?size_typesize_tcontainer::size_type
template<typename some_container>
int func(some_container& input)
{
//Some code...
//...
decltype(input.size()) variable_x; //Choose this if defined,
size_t variable_x; //otherwise choose this
//... Some more code...
}
在这种情况下,some_container可能是自定义容器并且不提供size()功能。导致我产生这种想法的原因是阅读size_t 与 container::size_typesize_t之间container::size_type的区别。我还阅读了在编译时确定一个类型是否是 STL 容器,但这种方法对我的情况来说有点笨拙。