小编Tha*_*mer的帖子

为什么unique_ptr operator*不是noexcept?

在为我的爱好操作系统实现一个基本的std库时,我遇到了这个并想知道为什么:

双方operator->()T* get()标记为noexcept,但operator*()并非如此.根据参考,它应该相当于*get(),它将允许它noexcept并且看一些实现我认为没有理由不是.

为什么unique_ptr解除引用运算符没有标记为noexcept

c++ unique-ptr dereference noexcept

9
推荐指数
2
解决办法
726
查看次数

2017年的libspotify状态

我知道libspotify将不再获得任何支持,并被webapis取代.我没有任何问题,因为libspotify可用性很糟糕,并且有很多不修复的bug以及许多缺少的功能.但是,无法获取任何流URL或具有用于流解码的小型库.

我们承诺,一个新的小型替代库将很快"提供"近4年,并且部分libspotify已经关闭.除此之外,有一段时间,有一个说明,libspotify将在2017年关闭.

我并不关心Web API提供的任何内容,它几乎在任何方面都明显优于libspotify.我所关心的只是一个简单的播放器API,我可以在其中输入Spotify轨道URI并获取原始PCM帧(可以输出到扬声器,流式传输到不支持的设备等).

你已经在android SDK里面有这种类型的库,它提供了我们所需要的一切.不为非Android平台(win32,Linux,mac)提供标准c库的原因是什么?

或者提供一种获取RTMP或HTTP流URL的方法,就像它在Spotify网络播放器中完成的方式一样,这会更好.

我非常喜欢Spotify,希望能够继续开发使用它的应用程序.

end-of-life spotify libspotify

8
推荐指数
0
解决办法
617
查看次数

for 没有增量 vs while

我目前正在德国学习计算机科学,但之前曾参与过几个 C/C++ 开源项目。今天我们在学校开始学习 C,我的老师说在循环内修改 for 循环变量是不行的,我绝对同意。然而,我经常使用一个for循环,没有最后一个递增部分,然后在循环内部修改它,他也不喜欢这一点。

所以基本上可以归结为

for(int i=0; i<100;) {
    [conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)

int i=0;
while(i<100) {
    [conditionally modify i]
}
Run Code Online (Sandbox Code Playgroud)

我知道它们在编译后本质上是相同的,但我不喜欢使用 while 循环,因为:

  1. 将变量限制在尽可能小的范围内是常见的做法
  2. 如果您重用 i (由于范围较大,您必须这样做),它可能会引入错误
  3. 如果不使用不同的名称,则不能在稍后的循环中为 i 使用不同的类型

是否有任何风格指南/常见做法可供选择?

如果您回答“我喜欢同时/更多”,至少请提供一个这样做的理由。

我确实已经搜索过类似的问题,但是,我找不到此案例的任何真正答案。

c styles loops

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

c++ ×1

dereference ×1

end-of-life ×1

libspotify ×1

loops ×1

noexcept ×1

spotify ×1

styles ×1

unique-ptr ×1