问题标签 [abseil]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 WebRTC 静态库构建对等连接失败
当我想构建将 Webrtc 链接为静态库的 peerconnection 示例时遇到了一些问题。
我的构建环境和目标都是 ubuntu 18.04,我使用 Github repo https://github.com/vsimon/webrtcbuilds将 Webrtc 构建为静态库。
然后有很多关于absl libray的链接错误,经过一些调查,我添加了一些构建参数以消除大部分错误,如下所示:
但它仍然有几个我无法解决的链接错误:
我希望任何人都可以给我一些提示来解决它们,非常感谢!
python - 使用 Abseil 与直接调用 main()?
我一直在用香草
但最近看到人们在做
Abseil 提供flags.FLAGS
,但我一直在使用ArgumentParser
,它工作得非常好,所以 Abseil 在这方面没有胜利。
那么,为什么还要走 Abseil 路线呢?
PS:关于 Reddit 的相关讨论(并没有真正回答这个问题):https ://www.reddit.com/r/Python/comments/euhl81/is_using_googles_abseil_library_worth_the/
c++ - 将 absl::flat_hash_set 与 folly::small_vector 一起使用
我正在尝试创建一个absl::flat_hash_set
of folly::small_vector
。添加对 absl::Hash 的自定义类型的支持的文档说:
类型的
AbslHashValue
重载只能在与所述类型相同的文件和命名空间中声明。给定类型的正确AbslHashValue
实现将通过 ADL 发现。
不幸的是,我不能这样做,因为我不控制库的源代码或安装。
所以我试过这个:
但是我得到了大量的模板错误,这些错误似乎表明我的类型不能被散列:
我能做些什么来让folly::small_vector
Abseil 可以散列吗?
c++ - 在 C++ 中实现跨度的异构查找
异构查找意味着我们可以std::string
使用另一种有意义的兼容类型(例如absl::string_view
. 例如,以下代码有效(出于某些兼容性原因,我在代码中使用Abseil库而不是 C++20):
这是有道理的(确实如此),因为我们需要处理哈希表的能力是计算哈希函数的能力,以及比较相等性的能力。因此使用这种方法读取哈希表应该很简单,写入表也很有意义,因为哈希表可以创建一个新std::string
的保存字符串视图的内容。
Astd::vector<T>
也有一个轻量级的字符串视图类似物,即absl::Span<T>
类型。但是,相应的查找不起作用:
编译器在最后一行抱怨没有匹配operator[]
.
问题:我如何实现这种异构查找,以便它以与字符串和字符串视图相同的方式适用于向量和跨度?
我可以看到absl::Hash<std::vector<int>>
并absl::Hash<absl::Span<int>>
产生相同的结果,因此不应该有太多的障碍来完成这项工作。
c++ - C++ Google 测试在 Ubuntu 上中止在 Notification 对象上多次调用 Notify()
我使用谷歌测试和谷歌模拟。有一个模拟对象,我希望有一个方法调用OnConnectionError()
通知 absl::Notification 对象done
3 次。
该方法client->ConnectToServer
有一个循环,导致重复调用OnConnectionError
,这是完全正常的并且是所需的行为。
在 Windows 上,单元测试通过正常。当 jenkins 在 ubuntu 上运行它时,它会中止整个测试运行(不仅没有通过一个测试!!)并显示以下输出。
不允许多次调用 Notification 对象吗?为什么在 Windows 上测试成功并在 ubuntu 上中止?
非常感谢您的支持!
ios - libopus和abseil之间的Cocoapods头冲突
我有一个带有以下 Podfile 的 Xcode 项目:
问题在于,由于 GRPC 决定使用 Abseil 作为依赖项,因此发生了奇怪的冲突。编译时,我在 Pods/abseil/base/config.h 上收到以下错误:
'absl/base/options.h' file not found
但堆栈中的先前调用实际上位于 Pods/libopus/float/warped_autocorrelation_FLP.c :
#include "config.h"
这没有意义,因为特定的config.h
libopus 试图获取实际上是在同一个 pod 目录中。
知道如何解决这个问题吗?我尝试了多个版本的 libopus,但静态版本本身就引起了问题。
c++ - 在 abseil::node_hash_map 中选择一个随机(ish)元素?
是否可以有效地选择 中的某种随机元素abseil::node_hash_map
,或者更普遍地选择任何abseil
地图?
例如,我很高兴随机选择一个插槽,然后找到下一个占用的插槽并从散列到该插槽的元素中选择一个随机元素,但不清楚这是否可能没有访问地图内部。
像std::next(map, n)
where n
is an integer 之间随机选择的东西[0, map.size())
会起作用,但复杂性非常慢O(map.size())
。
c++ - Abseil StrCat 示例导致 std::bad_alloc
我尝试使用 abseil 的字符串库,但是这个简单的示例已经没有运行并且失败了terminate called after throwing an instance of 'std::bad_alloc'
。
我使用的片段
我将 Abseil 20200923.2 与 conan/cmake 一起使用。我尝试了 gcc 10.1 和 clang 11,结果相同。我怎样才能让这段代码运行?