-
16 votesanswersviews
在B类中声明为朋友的A类成员模板函数无法访问A类的私有成员(仅限Clang)
请查看此代码段 . 我知道它没有多大意义,它只是为了说明我遇到的问题: #include <iostream> using namespace std; struct tBar { template <typename T> void PrintDataAndAddress(const T& thing) { cout &l... -
0 votesanswersviews
使用Clang获取函数定义
我想用clang从cpp文件中获取函数名 . 我找到了一些教程但总是在执行'make'时收到此错误: / usr / bin / ld:错误:../../ lib / libLLVMSelectionDAG.a:ELF部分名称超出范围collect2:错误:ld返回1退出状态工具/ lto / CMakeFiles / LTO.dir / build.make :269:目标'lib / lib... -
7 votesanswersviews
wcin.imbue和UTF-8
在带有g的linux上,如果我设置了utf8全局语言环境,那么 wcin 正确地将UTF-8转码为内部wchar_t编码 . 但是,如果我使用经典语言环境并将UTF8语言环境灌输到wcin中,则不会发生这种情况 . 输入完全失败,或者每个字节独立转换为wchar_t . 使用clang和libc,既不设置全局语言环境也不在 wcin 中使用语言环境 . #include <iostream&... -
0 votesanswersviews
为什么在Coliru的Clang无法编译vector :: push_back?
See it here.该计划非常平凡,就像这样: #include <vector> std::vector<int> bombs; int main() { bombs.push_back(42); // compile errors } 诊断对我来说没有多大意义: 在main.cpp中包含的文件中:1:在/usr/local/bin/../lib/gc... -
3 votesanswersviews
了解在共享库中重载operator new的行为
我正在Centos平台上工作一个共享库和应用程序[clang,llvm3.9.0和libc],并且库和应用程序都会重载它们自己的operator new和operator delete . 除1例外,一切正常 . 在调用std :: string的copy构造函数时总是调用应用程序端的 operator new : 这是senario: std::string str1 ( "A ver... -
3 votesanswersviews
使用bool初始化std :: string
考虑以下初始化: std::string falseString = false; std::string trueString = true; 使用 g++ 5.2.0 时,编译器会为 falseString 发出警告,而 trueString 则会出错 . 使用 clang++ 3.6 -std=c++11 ,编译器会为 falseString 和 trueString 抛出错误 . Q1)... -
0 votesanswersviews
初始化无序映射失败
并感谢任何输入 . 我有一个大型数据集,我试图操纵 . 我在列表中保存活动元素,并在它们变为非活动状态时将其删除 . 我想在一些数据结构中保持所有元素处于活动和非活动状态 . 目前正在尝试 Map 或unordered_map,但欢迎任何建议 . 我正在编译 clang -std = c 11 -Wall -Wextra 在尝试 Map 时: #include <map> std:... -
1 votesanswersviews
多线程代码不会使用g进行编译,但是对于clang来说很好
我在使用g编译器时遇到了麻烦 . 在我的工作机器上(运行OS X 10.10.4)我正在使用Xcode试验一些代码 . 代码确实成功编译,生成的可执行文件按预期工作 . 输出 clang++ --version : Apple LLVM版本6.1.0(clang-602.0.53)(基于LLVM 3.6.0svn)目标:x86_64-apple-darwin14.4.0线程模型:posix 然... -
3 votesanswersviews
使类模板强制在继承构造函数中重复基类模板参数
我最近将一个类从模板改为不,并发现在编写using声明从模板化基类继承构造函数时,我不能再省略模板参数 . 只要我的 class 不是't templated I can omit the arguments, as soon as it is I can' t . 在下面的可编辑片段中, bar 表示之前的类,而 buzz 表示之后的类 . 我测试了GCC 5.2和Clang 3.7,它们具有相... -
12 votesanswersviews
为什么clang拒绝variadic模板的朋友功能
我有以下示例代码,简化为必需的,编译与gcc 6.1,gcc 7.0 head和Visual Studio 2015 / 2017RC,但没有任何clang版本 . #include <iostream> #include <tuple> using namespace std; namespace outer { namespace test { tem... -
1 votesanswersviews
C mingw_w64线程使用静态链接错误
我正在使用clang 3.7和MinGW-w64 4.0版 . 试图 Build 这个: #include <thread> void f(){} int main() { std::thread t(f); return 0; } 使用这些编译器标志 clang++ -std=c++11 -pthread C:\Users\Илья\Desktop\main.c... -
0 votesanswersviews
在clang中返回模板类内朋友函数的类型推导
所以,我正在尝试做的事情并不是针对课堂朋友定义的真正意图用例 . 但它确实可以在g下运行,而且我可以说,它应该按照C 14规范工作 . 出于讨论的目的,clang是5.0.0而gcc是7.2.0,尽管我已经测试了其他最近和HEAD版本并得到了相同的结果 . 一切都用c 14标志编译 . 我感兴趣的案例的最小再现是下面的 . #include <iostream> auto foo()... -
8 votesanswersviews
更简单的c模板编译错误输出
在C中使用模板时,任何错误都会导致编译器发出大量输出 . 在大多数情况下,当我正在处理大部分信息时,我需要滚动查找我感兴趣的信息,例如: 列出了每个候选模板 . 我很少使用这个长列表,它只会使输出混乱 . 扩展了模板特化的别名,例如 std::string 写为 std::__cxx11::basic_string<char, std::char_traits<char>... -
12 votesanswersviews
是否需要初始化参考变量主模板,即使它从未实例化?
在没有初始化主要参考模板的情况下在C 14中声明参考模板是否合法,只要它从未实例化过? template<class T> const T& ref; template<> auto ref<int> = 1; auto x = ref<int>; 这会在GCC和Clang上产生不同的结果: $ g++ -std=c++14 -c re... -
0 votesanswersviews
问题是在-02或以上优化的框架中重载operator new和delete [关闭]
我们面临的问题是libc与xcode 9.2捆绑在一起 Scenario : 我们有一个重载operator new和delete的框架 . 这些operator new和delete的定义将隐藏在dll中,并在此处定义了apple指南:https://developer.apple.com/library/content/technotes/tn2185/_index.html#//apple_... -
4 votesanswersviews
实例化引用私有函数模板的公共别名模板失败(clang)
我在以下场景中注意到了Clang的一些独特行为: 有一个类foo,它包含一个私有成员函数模板function_template . foo还将非嵌套结构栏声明为friend: struct bar; class foo { friend struct ::bar; template<typename T> void function_template() {} }; ... -
1 votesanswersviews
使用GMock克服未定义的参考错误
昨天我做了一个dist-upgrade,现在我在使用GMock和clang编译测试时遇到了未定义的引用错误;虽然它与g一起工作正常 . GTest和GMock从源代码编译并与Cmake一起安装 . 我想知道是否有人知道为什么它没有正确链接? 我正在编译: clang++-3.7 -Wall -Wextra -pedantic -std=c++11 -Wshadow a.cpp -o a.out ... -
2 votesanswersviews
无法使用libc和clang -5.0
我已经安装了clang -5.0来试用新的C 17功能,但为了获得完整的体验,我需要一个新的库 . 在找不到更新的libstdc后,我决定试用libc . 我用here描述的类似方式检查了它 . 结帐后,我用clang本身编译它,因为它被建议使用clang . 编译没有问题 . 然后我安装它,将它们放在 /usr/local/include/c++/v1 目录中 . 当我尝试编译任何东西时,我收到...