草庐IT

clang_analyzer

全部标签

c++ - clang 5:std::optional 实例化参数类型的 std::is_constructible 特征

当切换到c++17并用标准解决方案替换自定义std::optional解决方案时,检测到clang5的一个非常奇怪和意外的行为。出于某种原因,由于对参数类的std::is_constructible特征的错误评估,emplace()被禁用。在复制之前必须满足一些特定的先决条件:#include///Precondition#1:TmustbeanestedstructstructFoo{structVictim{///Precondition#2:Tmusthaveanaggregate-initializer///foroneofitsmembersstd::size_tvalue{

c++ - clang 5:std::optional 实例化参数类型的 std::is_constructible 特征

当切换到c++17并用标准解决方案替换自定义std::optional解决方案时,检测到clang5的一个非常奇怪和意外的行为。出于某种原因,由于对参数类的std::is_constructible特征的错误评估,emplace()被禁用。在复制之前必须满足一些特定的先决条件:#include///Precondition#1:TmustbeanestedstructstructFoo{structVictim{///Precondition#2:Tmusthaveanaggregate-initializer///foroneofitsmembersstd::size_tvalue{

c++ - 为什么 move 构造函数既没有用clang声明也没有删除?

考虑以下类。structwith_copy{with_copy()=default;with_copy(with_copyconst&){}with_copy&operator=(with_copyconst&){return*this;}};structfoo{with_copyc;std::unique_ptrp;};with_copy有复制构造函数吗?是的。它是明确定义的。with_copy是否有move构造函数?不会。显式复制构造函数会阻止生成它。with_copy是否有已删除的move构造函数?不,没有move构造函数与删除构造函数不同。已删除的move构造函数会尝试move

c++ - 为什么 move 构造函数既没有用clang声明也没有删除?

考虑以下类。structwith_copy{with_copy()=default;with_copy(with_copyconst&){}with_copy&operator=(with_copyconst&){return*this;}};structfoo{with_copyc;std::unique_ptrp;};with_copy有复制构造函数吗?是的。它是明确定义的。with_copy是否有move构造函数?不会。显式复制构造函数会阻止生成它。with_copy是否有已删除的move构造函数?不,没有move构造函数与删除构造函数不同。已删除的move构造函数会尝试move

c++ - 如何使用预编译的二进制文件安装 CLang?

如何使用我下载的预编译的CLang二进制文件在Ubuntu上安装CLang?这是我下载CLang的方式:“LLVM下载页面”->“下载LLVM3.2”->“Ubuntu-12.04/x86_64的Clang二进制文件”(http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz.)然后,我将存档展开到我的Ubuntu12.04LTS64位机器上的一个文件夹中。展开后的文件夹内容如下:$lsclang+llvm-3.2-x86_64-linux-ubuntu-12.04bindocsinclud

c++ - 如何使用预编译的二进制文件安装 CLang?

如何使用我下载的预编译的CLang二进制文件在Ubuntu上安装CLang?这是我下载CLang的方式:“LLVM下载页面”->“下载LLVM3.2”->“Ubuntu-12.04/x86_64的Clang二进制文件”(http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz.)然后,我将存档展开到我的Ubuntu12.04LTS64位机器上的一个文件夹中。展开后的文件夹内容如下:$lsclang+llvm-3.2-x86_64-linux-ubuntu-12.04bindocsinclud

c++ - 任何将 Clang 作为脚本解释器嵌入 C++ 代码的教程?

我还没有使用llvm或clang的经验。从我读到的clang据说很容易嵌入Wikipedia-Clang,但是,我没有找到任何关于如何实现这一点的教程。那么是否可以通过JIT在运行时编译和执行用户定义的代码来为c++应用程序的用户提供脚本功能?是否可以调用应用程序自己的类和方法并共享对象?编辑:对于脚本语言(甚至C++本身),我更喜欢类似C的语法 最佳答案 我不知道任何教程,但Clang源代码中有一个示例C解释器可能会有所帮助。你可以在这里找到它:http://llvm.org/viewvc/llvm-project/cfe/tru

c++ - 任何将 Clang 作为脚本解释器嵌入 C++ 代码的教程?

我还没有使用llvm或clang的经验。从我读到的clang据说很容易嵌入Wikipedia-Clang,但是,我没有找到任何关于如何实现这一点的教程。那么是否可以通过JIT在运行时编译和执行用户定义的代码来为c++应用程序的用户提供脚本功能?是否可以调用应用程序自己的类和方法并共享对象?编辑:对于脚本语言(甚至C++本身),我更喜欢类似C的语法 最佳答案 我不知道任何教程,但Clang源代码中有一个示例C解释器可能会有所帮助。你可以在这里找到它:http://llvm.org/viewvc/llvm-project/cfe/tru

c++ - clang 3.1 看不到 unique_ptr?

我刚刚开始玩clang并尝试编译以下示例程序:#include#includeintmain(){std::unique_ptru(newunsigned(10));std::cout编译时出现以下错误:$clang++helloworld.cpphelloworld.cpp:6:10:error:nomembernamed'unique_ptr'innamespace'std'std::unique_ptru(newunsigned(10));~~~~~^helloworld.cpp:6:29:error:expected'('forfunction-stylecastortypec

c++ - clang 3.1 看不到 unique_ptr?

我刚刚开始玩clang并尝试编译以下示例程序:#include#includeintmain(){std::unique_ptru(newunsigned(10));std::cout编译时出现以下错误:$clang++helloworld.cpphelloworld.cpp:6:10:error:nomembernamed'unique_ptr'innamespace'std'std::unique_ptru(newunsigned(10));~~~~~^helloworld.cpp:6:29:error:expected'('forfunction-stylecastortypec