草庐IT

graph_templates

全部标签

C++ : Check if the template type is one of the variadic template types

这个问题在这里已经有了答案:Checkifatypeispassedinvariadictemplateparameterpack(3个答案)关闭7年前。假设我们有函数:templatevoidfoo(){...};检查“Kind”类型是否是C++(包括C++1z)中的“Kinds”类型之一的最简单方法是什么?

c++ - 比较由 Boost Graph Library 创建的 2 个图

这可能是一个相当新手甚至错误的问题,所以请原谅。有没有一种方法可以比较使用BoostGraphLibrary=>创建的2个图与在内存中创建的1个图以及从存档加载的第2个图(即第2个之前已序列化)?我没有在BGL的文档中看到运算符==,但不确定这是否意味着我必须同时编写遍历和比较。任何指向教程、引用页或示例的指针都将是最有帮助的提前致谢象头神 最佳答案 Boost.Graph可以做到这一点,但不能使用==运算符:http://www.boost.org/doc/libs/1_39_0/libs/graph/doc/isomorphis

c++ - std::map.insert "could not deduce template argument for..."

我正在尝试熟悉STL库,但我无法理解我的编译错误。我使用编译器错误字符串“无法推断...的模板参数”搜索了其他问题,但没有一个答案似乎适用或相关。Error4errorC2784:'boolstd::operator&,conststd::unique_ptr&)':couldnotdeducetemplateargumentfor'conststd::unique_ptr&'from'conststd::string'c:\programfiles(x86)\microsoftvisualstudio10.0\vc\include\xfunctional125我正在编写一个简单的解释

c++ - 为什么我不能将 std::unique_ptr 用作 "template<class> class"参数?

这段代码:#includetemplateclassPtr>classA{Ptrints;};usingB=A;产生以下错误(使用GCC6.3):a.cpp:6:28:error:type/valuemismatchatargument1intemplateparameterlistfor‘templateclassPtr>classA’usingB=A;^a.cpp:6:28:note:expectedatemplateoftype‘templateclassPtr’,got‘templateclassstd::unique_ptr’现在,我可以像这样解决这个问题:templateu

c++ - MI 和隐式复制构造函数错误(原为 : Under what conditions can a template be the copy constructor?)

我很确定这个问题的答案是,“模板永远不可能成为复制构造函数。”不幸的是,我只花了3个小时弄清楚为什么我会收到有关递归的警告,跟踪它到复制构造函数,看着调试器发疯,不让我看递归代码,最后跟踪到一个基础构造函数中缺少“&”。你看,我有一个复杂的基于策略的设计主机,它已经运行了一段时间了。我着手将两个策略合二为一并遇到了一个递归复制构造函数。将其缩小为一个策略,该策略需要提供一个构造函数,该构造函数可以采用一种XXX概念作为其参数,但在这种情况下,我只是放弃它。所以我写了structmy_policy{templatemy_polity(Tconst){}//missing'&'...oop

c++ - template<>(<> 中没有任何类 T)是什么意思?

我正在阅读STL_construct.h中的一些源代码,在大多数情况下,它在中有某物我看到一些只有“template...”的行。这是什么? 最佳答案 这意味着接下来是一个templatespecialization. 关于c++-template(中没有任何类T)是什么意思?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10682416/

【论文笔记】Summarizing source code with Heterogeneous Syntax Graph and dual position

SummarizingsourcecodewithHeterogeneousSyntaxGraphanddualpositionAbstract1.Introduction2.HSGanddualposition2.1HSGconstruction2.2Codetokenswithdualpositions3.HetSummodel3.1Overview3.2Embeddings3.3.Codetokenencoder3.4HSGencoder3.5Summarydecoder3.6.Copyingmechanism4.Experiment4.1Experimentalresults4.2Ab

c++ - 为什么 C+ +'s <vector> templated class doesn' t 打破了一个定义规则?

也许这是一个蹩脚的问题,但我不明白!如果我包括或在多个翻译单元(不同的.cpp)中,为什么它不破坏ODR?据我所知,每个.cpp的编译方式都不同,因此将为每个目标文件分别生成vector的方法代码,对吧?所以链接器应该检测到它并提示。即使它不会(我怀疑这是模板的特殊情况),当我将所有链接在一起时,它会在每个单元中使用一个代码还是不同的克隆代码集??? 最佳答案 同样,任何模板定义都不会破坏ODR—ODR特别指出,模板定义可以在翻译单元之间重复,只要它们确实是重复的(并且,因为它们是重复,不可能有冲突或歧义)。[C++14:3.2/6

c++ - 当模板template-parameter的模板参数为pack expansion时,gcc失败,clang成功

templatestructS{templatestructA{};templatestructB{};templateclass>structC{};};S::C::B>s1;S::C::A>s2;//gcc5.1.0fails,clang3.6.0succeedsintmain(){}你可以在这里测试http://melpon.org/wandbox/permlink/hhy70gO9LMjLq9nU哪个是正确的,gcc还是clang? 最佳答案 这个问题在gcc6.0中已经解决 关

c++ - 在执行 DFS 时在 Boost::graph 中维护迭代器

Boost:graph库的大多数示例通过调用boost的深度优先搜索实用程序来执行深度优先搜索。创建顶点和边后,在图上调用DFS以深度优先的方式遍历整个图,如果我们有与之关联的访问者方法,它将调用访问者方法来执行操作,遍历每个节点。我正在寻找的是一种在图上维护迭代器的方法,而不是一次遍历图,当客户端调用“next()”时,迭代器将移动到下一个顶点遍历到DFS并再次调用next时,迭代器将移动到DFS指示的下一个顶点。是否有使用boost:graph执行上述操作的示例?谢谢 最佳答案 不幸的是,boost::graphAPI基于访问者