草庐IT

rule_sequence

全部标签

c++ - GCC 7,aligned_storage 和 "dereferencing type-punned pointer will break strict-aliasing rules"

我编写的代码在GCC4.9、GCC5和GCC6中没有警告。它在一些较旧的GCC7实验快照(例如7-20170409)中也没有警告。但在最近的快照(包括第一个RC)中,它开始产生关于别名的警告。代码基本上可以归结为:#includestd::aligned_storage::typestorage;intmain(){*reinterpret_cast(&storage)=42;}使用最新的GCC7RC编译:$g++-Wall-O2-cmain.cppmain.cpp:Infunction'intmain()':main.cpp:7:34:warning:dereferencingtyp

c++ - 制作 : pattern rule matching multiple extensions

我有几个扩展的重复模式规则(例如:cpp和cc):$(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp@$(CXX)$(CPPFLAGS)-I.-o$@-c$?$(OBJ_DIR)/%.o:$(SRC_DIR)/%.cc@$(CXX)$(CPPFLAGS)-I.-o$@-c$?有没有办法让一个模式规则在两个扩展上都匹配,而不是必须有两个规则? 最佳答案 不,您不能将这两个规则结合起来。所有先决条件都必须匹配。但是您可以避免需要两次指定配方。通过使用配方定义:defineCOMPILE@$(CXX)$(CPPFLAGS)-I

c++ - 为什么 C++ 标准 1.9/5 谈论 "possible execution sequences"?

根据C++03标准1.9/5Aconformingimplementationexecutingawell-formedprogramshallproducethesameobservablebehaviorasoneofthepossibleexecutionsequencesofthecorrespondinginstanceoftheabstractmachinewiththesameprogramandthesameinput.我不明白“作为其中一个”部分。如果我有一个特定的程序和一个特定的输入,并且我的程序不包含未定义的行为,为什么可观察到的行为会有所不同?“一种可能的执行顺

c++ - 连接到共享库时 cmake 中出现 "No rule to make target"错误

在Ubuntu中,我下载了一个第三方共享库,mylibrary.so,我将其放在目录/home/karnivaurus/Libraries中。我还将关联的头文件myheader.h放在目录/home/karnivaurus/Headers中。我现在想使用CMake在我的C++代码中链接到这个库。这是我的CMakeLists.txt文件:cmake_minimum_required(VERSION2.0.0)project(DemoProject)include_directories(/home/karnivaurus/Headers)add_executable(demodemo.c

c++ - 提升 :spirit reuse rules

嘿,另一个问题:我写了很多非常相似的解析器,它们使用了很多通用规则。我可以将这些rule对象存储在多个解析器可以访问的地方吗?它看起来像这样:rulenmeaStart=ch_p('$');rulenmeaAddress=alnum_p()>>alnum_p()>>!alnum_p()>>!alnum_p();rulenmeaDelim=ch_p(',');rulenmeaHead=nmeaStart>>nmeaAddress>>nmeaDelim;.../*otherrules.Differentforeachparser*/...rulenmeaChkSumStart=ch_p('

c++ - "Ambiguous conversion sequence"- 这个概念的目的是什么?

在N465916.3.3.1隐式转换序列中说10Ifseveraldifferentsequencesofconversionsexistthateachconverttheargumenttotheparametertype,theimplicitconversionsequenceassociatedwiththeparameterisdefinedtobetheuniqueconversionsequencedesignatedtheambiguousconversionsequence.Forthepurposeofrankingimplicitconversionsequen

c++ - C++ 中是否有类似 Haskell Data.Sequence 的东西?

是否有任何C++库实现了类似HaskellData.Sequence容器的东西?我最感兴趣的是:维护元素顺序(它们被插入的顺序)。O(logn)通过索引访问。又名operator[](size_typepos)。O(logn)在中间插入/删除(通过索引)。 最佳答案 在我看来,要实现*这样的数据结构,您需要一棵树来存储每个节点中的元素数量。它允许在O(log(N))中插入和检索,并且只需通过计算树中给定节点“左侧”的元素数量来维护索引。*我在这里回答的问题可能略有不同,实际问题是要求推荐一个库,这在SO上显然是题外话。这棵树的一个节

c++ - Netbeans远程C++开发 "No rule to make target"错误

在Netbeans中创建一个简单的远程C++开发应用程序时,出现以下错误:gmake[2]:Enteringdirectory'/path/to/project'gmake[2]:***Noruletomaketarget'/path/to/project/cpp/file'gmake[2]:Leavingdirectory'/path/to/project'BUILDFAILED(exitvalue2,totaltime:1s)要重现此错误,我只需创建一个新的C/C++项目,选择一个我已经配置的远程主机。当我添加具有相应.h文件的.ccp文件时,出现此错误。我什至不必使用或包含这些文

c++ - std::make_integer_sequence 究竟是如何实现的?

我正在观看C++11/14元编程演讲,其中描述了常见算法和tmp模式的一些有效替代方案。大部分效率提升来自使用可变参数模板而不是递归遍历,在许多情况下,使用可变参数模板的方法是扩展通过索引技巧或其他std::integer_sequence实例化技巧。由于这种效率来自实例化std::integer_sequence的事实,特别是别名std::make_integer_sequence不是一项昂贵的任务,我想确保当前最先进的C++1y标准库实现效率足以使make_integer_sequence实例化不是一项复杂且耗时/内存的任务。std::make_integer_sequence在C

c++ - "No rule to make target ' 安装 '"... 但是 Makefile 存在

我在安装C++库时遇到问题。CMake命令成功并生成Makefile,但它给出警告:CMakeWarning(dev)atCMakeLists.txt:27(LINK_DIRECTORIES):Thiscommandspecifiestherelativepath../usr/local/libasalinkdirectory.PolicyCMP0015isnotset:link_directories()treatspathsrelativetothesourcedir.Run"cmake--help-policyCMP0015"forpolicydetails.Usethecmak