generic-programming

    2热度

    1回答

    我在为了好玩而在C++中实现元组,并且陷入了困境,因为下面的类修改了它,以便我可以通过使用模板轻松地通过仅使用索引来提取每个元素。类似于std :: get。 TL; DR:如何提取元组内的元素的实现看起来像? template<typename first_t, typename ... arg_v> class Tuple : public Tuple<arg_v ...> { publ

    3热度

    1回答

    的#define mockable虚拟我发现这个代码: #define mockable virtual 你有任何想法,为什么有人会定义虚拟这个样子?我只是古玩什么的,这样你可以做这样

    0热度

    1回答

    我有一个Variant类型,我想用于像JSON解析器的东西。 JSON中的类型可以包含对象和数组。这些对象和数组可以包含它们自己类型的成员: typedef variant<int,float,bool,std::string> baseType; typedef std::vector<baseType> arrayType; // problem, can't have arrays of

    2热度

    1回答

    我想用模板超载朋友>>运算符。我不想在内联中定义它。 我曾试图在下面的代码中定义的方法add()的帮助下做同样的事情。它工作正常。我希望我的>>运营商也这样做。 以下是我的代码: #include<iostream> template<class T>class Demo; template<class T> std::ostream& operator<<(std::ostream&,

    2热度

    2回答

    我想创建一个类型为T的linq表达式的对象类型(MyObject)。我的类声明T的值必须是BaseModel类型(它是我创建的对象) 。以下是MyObject的构建方式: public class MyObject<T> where T : BaseModel { public Type MyType; public Expression<Func<T, bool>> My

    2热度

    1回答

    所以我在玩GCC6及其概念实现,我认为Haskell Prelude是一个很好的实验来源。 Haskell的核心功能之一是函数组合,这是我需要立即解决的问题。 模仿Haskell语法作为最好的,我可以,我写了这个功能: template <typename F, typename G> auto operator*(F f, G g) { return [f, g](auto...

    18热度

    1回答

    当您想从数据结构中提取元素时,必须给出索引。但索引的含义取决于数据结构本身。 class Indexed f where type Ix f (!) :: f a -> Ix f -> Maybe a -- indices can be out of bounds 例如... 元素在列表中有数字的位置。 data Nat = Z | S Nat instance Inde

    0热度

    1回答

    我实现一个边界Volumn层次结构,其中树有这样的一个模板: template <typename Coordinate> class BoundingTree { /* ... */ } 的Coordinate可以Vector2d,Vector3f或任何其他任意坐标。要使用该BoundingTree结构碰撞检测,应该有一个检测功能: template <typename Coordinat

    5热度

    1回答

    的定义如何写一般的条件下使用正确的LINQ表达式“其中” public static class ConStr { public static MySqlConnection Conn() { return new MySqlConnection(ConfigurationManager.ConnectionStrings["DBCN"].ConnectionSt

    1热度

    1回答

    我想做一个通用快速排序功能,我不明白我在做什么,因为它不能正常工作。 这里是我的代码: #include <stdlib.h> #include <string.h> #include <stdio.h> #include <stdbool.h> #include <assert.h> typedef bool (*CmpFunction)(void*, void*); i