草庐IT

is_iterator

全部标签

c++ - 如何实现 is_enum_class 类型特征?

这个问题在这里已经有了答案:Isitpossibletodetermineifatypeisascopedenumerationtype?(2个答案)关闭4年前。当且仅当传入的类型T是类枚举时,如何实现其值成员为true的类型特征?虽然我知道例如+T{};如果T是一个枚举会工作,如果它是一个枚举类则会失败,到目前为止我找不到将它用于SFINAE的方法。

C++ 中 <iterator> <functional> <numeric> 库好用的函数

C++中库好用的函数泰裤辣!简述:迭代器省代码用的。std::advance记忆方法:advance-前进。形如:advance(it,step),表示it迭代器自增step步。实现类似于:functionadvance(&it,n): whilen>0: --n ++it whilen或functionadvance(&it,n): it+=nstd::next&std::prev记忆方法:自己问英语老师。形如next(it,n)及prev(it,n),默认n=1,表示迭代器前移、后移n位。为std::advance的变体,区别在于返回了迭代器而传入迭代器不改变。实现类似于:functi

C++11 时钟:g++ steady_clock::is_steady == false?

所以准确的计时对我来说很重要,我正在研究C++11中指定的3种时钟,即system_clock、steady_clock和high_resolution_clock。我最初关心的是测试不同类型时钟的调用开销是否存在差异,并检查每种时钟的分辨率。这是我的示例程序:#include#includeusingnamespacestd;usingnamespacestd::chrono;intmain(intargc,char**argv){size_tN=1e6;if(2==argc){sscanf(argv[1],"%zu",&N);}#ifdefined(hrc)typedefhigh_

c++ - Boost.Program_Options : When <bool> is specified as a command-line option, 什么是有效的命令行参数?

鉴于Boost.Program_Options的以下简单使用:boost::program_options::options_descriptionoptions("Options");options.add_options()("my_bool_flag,b",boost::program_options::value(),"Samplebooleanswitch)");...哪些命令行参数将评估为false,哪些评估为true?(即假设程序名为“foo”,并在命令行上执行为:foo-b?...问号是其他一些文本的占位符:所有可能的文本选项将正确评估为false,什么是true?)

c++ - 获取错误 "array bound is not an integer constant before ' ]' token"

我正在尝试使用数组实现堆栈,但收到错误消息。classStack{private:intcap;intelements[this->cap];//cap=5;this->top=-1;};指示的行有这些错误:Multiplemarkersatthisline-invaliduseof'this'attoplevel-arrayboundisnotanintegerconstantbefore']'token我做错了什么? 最佳答案 在C++中,数组的大小必须是编译时已知的常量。如果不是这种情况,您将收到错误消息。在这里,你有inte

c++ - xcode 7 如何抑制警告 "overrides a member function but is not marked ' override'”

我今天将xcode更新为7。更新后,我正在处理的项目出现警告“覆盖成员函数但未标记为‘覆盖’”。由于我们的项目将“踩踏警告为错误”设置为true。我遇到了很多错误。我仔细检查了“OtherLinkerFlags”并且非常确定“-Wsuggest-override”标志不包括在内。因为这是一个大项目,我更喜欢抑制警告,而不是在任何地方添加关键字“override”。关于禁用警告的任何建议?谢谢 最佳答案 您需要关闭-Winconsistent-missing-override标志,该标志会在最新版本的clang上自动添加-Wall。您

【错误记录】安装 Hadoop 运行环境报错 ( Error: JAVA_HOME is incorrectly set. Please update xxx\hadoop-env.cmd )

文章目录一、报错信息二、问题分析三、解决方案总结:报错:Error:JAVA_HOMEisincorrectlyset.Pleaseupdatexxx\hadoop-env.cmdJDK安装在了C:\ProgramFiles\目录下,安装目录ProgramFiles有空格,太坑了;换一个没有空格的JDK目录;一、报错信息安装Hadoop运行环境,完成上述安装步骤后,运行hadoop命令报错;C:\Windows\system32>hadoop-versionThesystemcannotfindthepathspecified.Error:JAVA_HOMEisincorrectlyset. 

C++ 函数到指针的隐式转换 : which compiler is right? Clang 和 GCC 不同意

templatestructA{};voidfunc();Aa;//sameresultwithAa;此代码使用Clang(包括最新的8.0.0)编译,但不能使用GCC(包括最新的9.1)编译。GCC说:错误:'void()'不是模板非类型参数的有效类型哪个编译器是正确的,为什么?更新我猜GCC是错误的,因为以下代码在Clang和GCC上都可以编译:templatestructA{};voidfunc();Aa;//sameresultwithAa;因此与GCC在第一个示例中的报告相反,void()似乎是“模板非类型参数的有效类型” 最佳答案

c++ - 为什么 range-for 找不到我对 std::istream_iterator 的开始和结束重载?

我有这样的代码std::ifstreamfile(filename,std::ios_base::in);if(file.good()){file.imbue(std::locale(std::locale(),newdelimeter_tokens()));for(auto&entry:std::istream_iterator(file)){std::cout哪里std::istream_iterator的begin()和end()定义如下templatestd::istream_iteratorbegin(std::istream_iterator&stream){returns

c++ - '_ITERATOR_DEBUG_LEVEL' : value '0' doesn't match value '2' 检测到不匹配

使用VS2010构建时,我正在构建一个导致许多此类链接错误的库:errorLNK2038:mismatchdetectedfor'_ITERATOR_DEBUG_LEVEL':value'0'doesn'tmatchvalue'2'导致我必须同时发布我的库的发行版和调试版。我没有理由发布lib的调试版本,它只会使二进制分发版膨胀。但是在调试中构建的客户端代码拒绝链接到我的发布库。我以前见过这个问题,但他们似乎没有问正确的问题。我明白这个错误是什么,以及为什么我会得到它(好吧,有点;我不确定到底是什么发出了依赖性。你呢?),但我想知道的是如何消除这种依赖性的发生在我的库中?类似于在使用冲