草庐IT

list_length

全部标签

c++ - 'list::list' 命名构造函数,而不是类型

我在使用构造函数编译我的类链表时遇到此错误。我想做一个复制赋值运算符,但我得到这个错误'list::list'命名构造函数,而不是类型。该行是:list::list&operator=(constlist&l)list是我类(class)的名字 最佳答案 这个错误是不言自明的。使用这段代码:list&operator=(constlist&l)在类声明之外,您必须明确函数属于哪个范围:list&list::operator=(constlist&l)//^^^^^^ 关于c++-'lis

c++ - clang 中的别名 std::initializer_list

我想使用std::initializer_list的别名来代替它本身:#includetemplateusingInitializerList=std::initializer_list;//note:candidatetemplateignored:couldn'tinfertemplateargument'T'templatevoidf(InitializerListlist){}intmain(){//error:nomatchingfunctionforcallto'f'f({1,2,3,4,5});}该代码使用gcc&cl没问题。但是,使用clang我得到一个错误::11:3

C++: list 和从不同目录动态加载 DLL

关于我想要实现的目标的长篇故事我正在开发一个将DLL作为插件动态加载的程序。我正在使用MicrosoftVisualC++2008编译程序。不过,我们假设应该支持Qt工作的任何VisualC++版本。程序目录布局如下:|plugins/|plugin1.dll|plugin2.dll|QtCore4.dll|QtGui4.dll|program.exeprogram.exe发现所有插件DLL文件,对它们执行LoadLibrary()并调用某个签名函数以查明它是否真的是一个插件。这在安装了适用于MSVC90的vcredist的计算机上运行良好。当然,为了使程序在所有计算机上运行,​​我必

c++ - 意外的非常量 std::initializer_list

我正在尝试使用索引技巧来查看我可以去哪里并遇到一个奇怪的错误......首先,普通的不那么旧的索引:templatestructindices{};templatestructmake_indices:make_indices{};templatestructmake_indices:indices{};我创建了一个派生自std::initializer_list的编译时数组类,并使其可索引(假设N3471被您的编译器支持。它将在下一个标准中出现).在这里:templatestructarray:publicstd::initializer_list{constexprarray(st

c++ - 是否为 initializer_list 提供一个私有(private)构造函数?

此标准草案显示了initializer_list的概要.它没有私有(private)构造函数。但是我看过的两个标准库实现,libstdc++和libc++,都提供私有(private)构造函数://Thecompilercancallaprivateconstructor.constexprinitializer_list(const_iterator__a,size_type__l):_M_array(__a),_M_len(__l){}_LIBCPP_ALWAYS_INLINE_LIBCPP_CONSTEXPR_AFTER_CXX11initializer_list(const_E

解决java.lang.ArrayIndexOutOfBoundsException: Index x out of bounds for length y

解决java.lang.ArrayIndexOutOfBoundsException:Indexxoutofboundsforlengthy摘要引言1.异常原因2.常见场景2.1访问数组元素时的常见错误2.2循环中的潜在问题3.解决方法3.1验证索引范围3.2使用增强型for循环总结参考资料🧡博主默语带您GotoNewWorld.✍个人主页——默语的博客👦🏻《java面试题大全》🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭《MYSQL从入门到精通》数据库是开发者必会基础之一~🪁吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!

c++ - 不完整的类型和 initializer_list

我正在尝试为一些元数据建模以序列化/反序列化C++对象。这里有一些东西可以捕捉到我需要的细节;它使用GCC5.2(g++sample.cpp-std=c++14)和Clang3.6(clang++sample.cpp-std=c++14)编译。我的问题是关于示例中的structTypeInfo。它包含一个std::initializer_list本身。这符合标准吗?#include#includeenumclassTypeCode:std::uint8_t{BOOLEAN,INT,OBJECT,STRING,SENTINEL};structTypeInfo{TypeCodetypeCo

c++ - std::list 如何分配节点与元素

std::list如何分配它保留next/prev指针和T它包含的元素?我认为标准分配器只能用于为一种类型分配内存(因为std::allocator::allocate以sizeof(T)为增量分配内存).因此,在一次分配中分配列表节点和包含的对象似乎是不可能的,这意味着必须根据实现决定分配节点,并且节点存储指向对象的指针而不是对象本身,这意味着从指向列表节点的指针到它包含的对象的两个间接级别,这似乎效率低下。是这样吗? 最佳答案 分配器有一个成员模板类rebind,负责分配其他类型。std::allocator的页面here实际上

c++ - 为什么在 C++11 中为 std::initializer_list 重载 std::begin() 和 std::end()?

在C++11(引用N3337)中,std::begin()和std::end()被指定为(§24.7[iterator.range]/p2-3)templateautobegin(C&c)->decltype(c.begin());templateautobegin(constC&c)->decltype(c.begin());2Returns:c.begin().templateautoend(C&c)->decltype(c.end());templateautoend(constC&c)->decltype(c.end());3Returns:c.end().但是,std::in

c++ - 为什么 std::min(std::initializer_list<T>) 按值获取参数?

阅读thisquestion的答案,我惊讶地发现std::min(std::initializer_list)按值获取其参数。如果您使用std::initializer_list以其名称所暗示的方式,即作为某个对象的初始值设定项,我知道我们不关心复制它的元素,因为它们无论如何都会被复制以初始化对象。然而,在这种情况下,我们很可能不需要任何拷贝,因此将参数视为std::initializer_list似乎更合理。如果可能的话。这种情况下的最佳做法是什么?你不应该调用initializer_list吗?std::min的版本如果您关心不要进行不必要的复制,或者是否有其他一些技巧可以避免复制