小编WiS*_*GaN的帖子

如何在Github上找到"最受欢迎的存储库"?

曾几何时,我们可以在Github的这个页面(https://github.com/popular/watched)上观看最受欢迎的存储库(Most forked或Most watched).像这样:

IMG

但是现在当你尝试探索回购时,你只能看到前25个趋势库.像这样:https://github.com/trending

为什么Github改变这个,有没有办法找出最受欢迎的回购列表?

github

479
推荐指数
2
解决办法
16万
查看次数

在哪里可以找到 GLIBCXX_3.4.29?

我将 GCC 编译器从 GIT 存储库更新到版本 11。现在我的测试代码 (GoogleTest/GoogleMock) 抱怨找不到 GLIBCXX_3.4.29。 这不是重复的,请重新打开 发布在: Understanding the gcc version and the GLIBC, GLIBCXX versions in more detail (2 个答案) 中的 答案并没有回答这个问题。

链接器错误是:

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29 not found

的输出strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH
Run Code Online (Sandbox Code Playgroud)

在哪里可以找到 3.4.29?

c++ gcc libstdc++

55
推荐指数
4
解决办法
13万
查看次数

何时应该在Rust中使用内联?

Rust有一个"内联"属性,可以用于以下三种风格之一:

#[inline]

#[inline(always)]

#[inline(never)]

什么时候应该使用它们?

在锈参考,我们看到了一个内嵌属性部分说法

编译器根据内部启发式自动内联函数.错误地内联函数实际上可能会使程序变慢,因此应谨慎使用.

在Rust内部论坛中,huon 对于指定内联也很保守.

但是我们在Rust源代码中看到了相当多的用法,包括标准库.许多内联属性被添加到单行函数中,编译器应该可以根据参考通过启发式查找和优化.那些实际上不需要吗?

inline rust llvm-codegen

54
推荐指数
1
解决办法
6820
查看次数

异常安全代码和移动语义

我想写容器类.此容器具有insert方法,该方法具有两个特征 - 首先使用复制构造函数将数据从一个容器复制到另一个容器元素.如果复制构造函数抛出异常我只是撤消对容器的所有更改,就像没有任何反应一样.

第二个专业化使用移动构造函数,这就是事情变得复杂的地方.当我将项目从一个容器移动到另一个容器元素时,移动构造函数可以抛出异常.如果发生这种情况 - 当一些元素被移动并且其他元素保留在原始位置时,我的状态非常混乱.如果我尝试移回元素 - 我可以得到另一个例外.

是否可以在异常安全方式或异常安全性中编写类似的内容,并且移动语义是互斥的?

c++ c++11

17
推荐指数
1
解决办法
2551
查看次数

Rust可以在某天移动对象期间优化掉逐位复制吗?

考虑一下片段

struct Foo {
    dummy: [u8; 65536],
}

fn bar(foo: Foo) {
    println!("{:p}", &foo)
}

fn main() {
    let o = Foo { dummy: [42u8; 65536] };
    println!("{:p}", &o);
    bar(o);
}
Run Code Online (Sandbox Code Playgroud)

该计划的典型结果

0x7fffc1239890
0x7fffc1229890
Run Code Online (Sandbox Code Playgroud)

地址不同的地方.

显然,大型数组dummy已被复制,正如编译器的移动实现中所期望的那样.不幸的是,这可能会产生非平凡的性能影响,因为这dummy是一个非常大的阵列.这种影响可以迫使人们选择通过引用来传递参数,即使函数实际上在概念上"消耗"了参数.

由于Foo没有派生Copy,对象o被移动.由于Rust禁止访问被移动的对象,是什么阻止bar了"重用"原始对象o,迫使编译器生成一个可能昂贵的按位复制?是否存在根本性的困难,或者我们是否会看到编译器有一天会优化掉这个逐位复制?

move-semantics rust llvm-codegen

17
推荐指数
1
解决办法
2612
查看次数

为什么使用函数名作为函数指针等效于将address-of运算符应用于函数名?

有趣的是,将函数名称用作函数指针等同于将address-of运算符应用于函数名称!

这是一个例子.

typedef bool (*FunType)(int);
bool f(int);
int main() {
  FunType a = f;
  FunType b = &a; // Sure, here's an error.
  FunType c = &f; // This is not an error, though. 
                  // It's equivalent to the statement without "&".
                  // So we have c equals a.
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用这个名称是我们在数组中已经知道的.但是你不能写出类似的东西

int a[2];
int * b = &a; // Error!
Run Code Online (Sandbox Code Playgroud)

这似乎与该语言的其他部分不一致.这个设计的基本原理是什么?

这个问题解释了这种行为的语义及其工作原理.但是我对这种语言设计的原因很感兴趣.

更有趣的是,当用作参数时,函数类型可以隐式转换为指向自身的指针,但在用作返回类型时不会转换为指向自身的指针!

例:

typedef bool FunctionType(int);
void g(FunctionType); // Implicitly converted to void g(FunctionType …
Run Code Online (Sandbox Code Playgroud)

c++ syntax function-pointers

16
推荐指数
2
解决办法
6040
查看次数

Boost对"仅头文件库"和"自动链接"的意义是什么?

Boost Library Documentation页面上,有两个名为" Header Only Libraries "和" Automatic Linking "的类别.
我认为"仅限头文件库"意味着您不必链接Boost.Timer库以便使用它们,而"自动链接"意味着您必须链接.
但是当我使用时timer,我必须链接一个名为的静态或动态库libboost_timer.a(libboost_timer.so.1.48.0以及Boost.Timer各种软链接到linux lib路径下的这些),这显然是确切的库文件Boost.System.我甚至需要来链接Boost.ChronoBoost.Asio,虽然这是可以理解的是,库本身使用的是需要链接一些其他的库.
另一方面,asio已明确声明Boost.Timer属于"自动链接",但没有任何类似的库文件timer.
那么,作为" 仅限标题库 "还是" 自动链接 " 实际上意味着什么呢?还是纯粹是一个错误?

c++ linker boost header

15
推荐指数
2
解决办法
3432
查看次数

事件对象和条件变量之间的区别

事件对象和条件变量之间有什么区别?我在WIN32 API的上下文中询问.

c++ winapi multithreading synchronization

14
推荐指数
1
解决办法
9394
查看次数

如何使用Windows API在C++中播放声音?

我尝试在编码中播放音乐文件,但失败了.我将我的音乐文件放在保存.cpp文件的同一文件夹中.

有人能帮我吗?

我的代码是:

#include <iostream>  
#include <windows.h>

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);    
}
Run Code Online (Sandbox Code Playgroud)

c++ winapi playsound

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

"E"代表C++ 11标准"ISO/IEC 14882:2011(E)"的名称

我已经看到一些地方将C++ 11标准称为"ISO/IEC 14882:2011(E)",而ISO网站将其称为"ISO/IEC 14882:2011",没有尾随"(E)".
"E"代表什么?


编辑:关于修订号的说明,该标准于2011年8月12日由ISO批准,并于9月发布.是一个尾随"(E)",它清楚地说日期是2011年9月1日.所以我认为它不太可能很快就会出现第五次修订.

c++ iso c++11

11
推荐指数
1
解决办法
865
查看次数