小编use*_*934的帖子

Polymorphic(Generic)函数作为C++中的参数

我正在开发一个相对简单的程序(实际上是一个计算器).但是,我决定尽可能使我的程序的所有组件都是通用的,因为:

  1. 这是一个很好的做法.
  2. 它让事情变得有趣.

作为该计划的一部分,我正在使用Tuple我正在编写的课程.我知道一个类已经存在,但我喜欢完全控制我的代码,这只是一个练习.

我需要做的一件事是将表达式元组(表达式本身是通用的)转换为包含表达式求值结果的元组.简而言之,我(遗漏了一些琐碎的部分):

template <class T>
class Expression {

    public:
        virtual T Eval() = 0;

    // ...
};

template <class First, class ... Rest>
class Tuple {

    // ...

    private:
        First first;
        Tuple<Rest ...> rest;
};
Run Code Online (Sandbox Code Playgroud)

我想专门研究像这样的泛型类型的元组:

template <template <class> class R, class First, class ... Rest>
class Tuple<R<First>, R<Rest> ...> {

    // and here is the problem:
    Tuple<First, Rest ...> Transform(function<template<class T> T(R<T>)>);
};
Run Code Online (Sandbox Code Playgroud)

之后我可以这样做:

template <class T> // There has to be a better …
Run Code Online (Sandbox Code Playgroud)

c++ generics higher-kinded-types variadic-templates higher-rank-types

6
推荐指数
1
解决办法
379
查看次数

ef 5 codefirst枚举集合未在数据库中生成

我使用的是EF5和.NET 4.5.我有一个特定的类在数据库中生成不正确.虽然我的网站有点复杂,但我会简化;

namespace Store.Enities
{
    public enum Role
    { Manager, Clerk }

    public class User
    {
        public int Id {get; set;}
        public ICollection<Role> Roles {get; set;}
    }

    public class StoreContext : DbContext
    {
        public DbSet<User> Users {get; set;}

        public StoreContext()
        {
            Database.SetIntializer(new DropCreateDatabaseIfModelChanges<StoreContext>());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,用户可以拥有多个角色.出于某种原因,我无法将角色存储在数据库中.

entity-framework ef-code-first

5
推荐指数
2
解决办法
2982
查看次数