c++11 相关问题

将此标记用于必须编译为C ++ 11的代码(不使用C ++ 14或更高版本中引入的任何功能)。

GCC 是否有错误:默认 std::function?

如何指定默认函数作为类成员的参数? 从我的代码派生的当前示例是: #包括 #包括 模板 ...

回答 1 投票 0

使用C++新标准[已关闭]

Interview Street 网站称他们使用“g++ 4.6.1,C++0x 模式”。据我所知,C++11在正式发布之前被称为C++0x。那么这是否意味着他们为......提供不稳定或非官方的支持?

回答 2 投票 0

C++17 非静态 POD 类成员是否用大括号 {} 初始化并设置为 0?

收到代码审查评论,指出我的非静态类 POD 成员被设置为无效值。我同意初始值应该是无效的。对于我的情况,0 无效。这是一个例子: A级 { ...

回答 1 投票 0

实现任意类型擦除的小缓冲区优化的简单方法(如 std::function 中。)

我倾向于使用很多类型擦除技术。 它通常看起来像这样: YetAnotherTypeErasure 类 { 民众: // 接口重定向到pImpl 私人的: // 适配函数 圣殿...

回答 3 投票 0

为 MyString 实现按位交换

以下 Move 操作是否合法,因为没有 UB。 我想实现 16 字节 MyString 的一次交换,而不是两次交换。 类 MyString { std::size_t size_; 字符* str_...

回答 1 投票 0

std::condition_variable wait_for 无限

我试图使用以下代码对条件变量进行无限等待(只是显示问题的示例): std::condition_variable条件; std::互斥体 mtx; std::unique_lock 我试图使用以下代码对条件变量进行无限等待(只是显示问题的示例): std::condition_variable cond; std::mutex mtx; std::unique_lock<std::mutex> lock(mtx); cond.wait_for(lock, std::chrono::steady_clock::duration::max()); 但是等待立即结束。深入研究 wait_for 的(MS)实现,我发现它实际上使用 wait_until 函数。但在此之前,它会通过调用 chrono::system_clock::now() 来转换时间并添加持续时间。 当然,这会导致整数溢出,因此新时间变为 <= 'now'. Thus wait_until 立即退出。 所有其他定时等待函数也会发生同样的情况(例如 try_lock_for 类中的 std::timed_mutex)。 总结以上,我想问一下这是否是定时等待函数实现中的一个bug,如果是的话,我在哪里可以写到它? 此外,由于wait_until使用了system_clock,如果等待期间有时间调整,实际等待时间应该会有所不同(因为system_clock不是单调的)。因此没有信任等待时间。 cpp参考文档说: 请注意,rel_time必须足够小,以免在添加到std::chrono::steady_clock::now()时溢出。 并且: 使用与 timeout_time 相关的时钟,该时钟不需要是单调时钟。如果不连续调整时钟,则无法保证此函数的行为,但现有实现将 timeout_time 从 Clock 转换为 std::chrono::system_clock 并委托POSIX pthread_cond_timedwait 以便等待遵循对系统时钟的调整,但不遵循用户提供的时钟的调整。在任何情况下,由于调度或资源争用延迟,该函数的等待时间也可能比达到 timeout_time 后等待的时间更长。 即使使用的时钟是std::chrono::steady_clock或其他单调时钟,系统时钟调整也可能会导致虚假唤醒。 如果你想要无限超时,你可以这样做(未经测试): wait_until(lock, std::chrono::sys_time::max()); 有点晚了,但对其他人来说也许很有趣:如果你想无休止地等待,就这样做 std::condition_variable cond; std::mutex mtx; std::unique_lock<std::mutex> lock(mtx); cond.wait(lock); 但是,由于虚假唤醒,我还会使用谓词条件,如上面的评论中已经提到的。

回答 2 投票 0

为什么我的移动赋值运算符无法正常工作?看起来它也弄乱了 main 中的其余部分

main.cpp int main() { Mystring larry3 = "larry3"; //将调用无参数ctor而不移动ctor。 Mystring larry4 = larry3; // 深度复制构造函数被正确调用 std::cout <<&

回答 2 投票 0

为什么禁用非强制复制消除会导致 C++17 之前和之后不同的行为

我一直在使用不同的编译器标志和版本尝试以下 C++ 代码,观察 C++11 和 C++17 之间对象构造的不同行为。 我注意到...

回答 1 投票 0

匿名枚举类

是否可以编写一个匿名枚举类,然后比较它包含的内容?例如。 枚举类 { APPLE, BANANA } 水果类型; // ... if (fruitType == FruitType::APPLE) // ...

回答 7 投票 0

在 range-for 循环中访问索引

我有一个对象向量,并使用 range-for 循环对其进行迭代。我用它来打印对象的函数,如下所示: 矢量 存储值; //把东西放进去

回答 9 投票 0

有人可以帮我理解为什么我的移动分配运算符无法正常工作吗?看起来它也弄乱了 main 中的其余部分

“main.cpp” int main() { Mystring larry3 = "larry3"; //将调用无参数ctor而不移动ctor。 Mystring larry4 = larry3; // 深度复制构造函数被正确调用 标准:...

回答 1 投票 0

期货与承诺

我对 std::future 和 std::promise 之间的区别感到困惑。 显然,他们有不同的方法和内容,但实际用例是什么? 是吗?: 当我管理一些异步时

回答 1 投票 0

C++读取二进制文件时的问题

这里是生成二进制文件“input”的代码: #包括 int main() { 无符号字符 buf[] = { 0x06、0x00、0x00、0x00、0x62、0x6f、0x79、0x31、0x00、0x00、0x...

回答 1 投票 0

创建对象时,什么是空模板参数<>?

以下是一些有效的语法: std::uniform_real_distribution<> 随机化器(0, 100); 它是如何工作的,它会自动推导出对象模板吗?为什么需要在...处写<>

回答 3 投票 0

std::iota 非常有限

来自Python世界,我发现std::iota函数非常有限。为什么接口被限制为不接受任何 UnaryFunction ? 例如我可以转换 >>> x = 范围(0, 10) 我...

回答 4 投票 0

memory_order_relaxed 是否会带来性能损失?

在典型的 x86 和 ARM 系统上,使变量 std::atomic 且仅执行 std::memory_order_relaxed 操作是否会带来任何性能损失? (与使其成为普通值相比...

回答 1 投票 0

为什么这个 C++ 代码在不同的编译器上给出不同的输出?

我意识到这个标题有很多问题,但我发现的所有问题都做了类似 i = ++i 或 f(f(f(x))) 的事情,这两个都不在这段代码。这是一次回溯的尝试...

回答 1 投票 0

在 static_assert 输出中集成类型名称?

我喜欢提供有用的错误/消息,我也想为我的 static_asserts 这样做。问题是,它们依赖于模板参数。通常,这些参数会显示在 w...

回答 5 投票 0

需要帮助在 C++ 中选择正确的数据结构

仅限 C++ 我有一个按一定顺序维护的元素列表。顺序是动态改变的,并且元素可以随时添加/删除。我需要添加/删除或修改元素位置

回答 1 投票 0

g++ 如何检查是否支持 lambda 函数?

关于 lambda 函数的讨论太多了……所以我尝试编写我的函数。 :(。没用。g++ 4.3.2支持lambda函数吗?如何查明它是否支持某个c++0x功能?

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.