Tag: C#的

我怎样才能检查一个types是一个给定的类模板的实例?

是否有可能检查一个types是一个特定模板的实例? 我有一个类模板,其中一个模板参数必须是特定模板的实例或其他types。 例如,考虑一个types列表的简单定义: struct null_type; template <typename Head, typename Tail> struct typelist { // Tail must be a typelist or null_type typedef Head head; typedef Tail tail; }; 现在,我想确保为Tail模板参数提供的types始终是typelist或null_type的实例。 我可以使用部分特化来为这些情况定义模板,如下所示: template <typename Head, typename Tail> struct typelist; // default, not defined template <typename Head, typename H, typename T> struct typelist< Head, typelist<H,T> > // Tail […]

STL删除不能按预期工作?

int main() { const int SIZE = 10; int a[SIZE] = {10, 2, 35, 5, 10, 26, 67, 2, 5, 10}; std::ostream_iterator< int > output(cout, " "); std::vector< int > v(a, a + SIZE); std::vector< int >::iterator newLastElement; cout << "contents of the vector: "; std::copy(v.begin(), v.end(), output); newLastElement = std::remove(v.begin(), v.end(), 10); cout << […]

加载相同程序集的多个版本

我正在使用第三方程序集,不幸的是我现在需要加载他们的最新和以前的版本到我的项目中,所以在运行时我可以决定加载哪一个。 我只需要一个,而不是两个。 考虑到这一点,我也依赖于组件提供的types,所以我不能从reflection加载和每次查询我想要使用的方法/事件/接口。 我已经看到一些通过AppDomain处理这个提到,但不知道如何继续。 该进程是针对组件的一个版本进行编码,然后在运行时(使用AppDomain )交换正确的DLL,我想要消耗? 所以我只会在启动时处理这个问题?

如何通过调用exec函数家族的成员来获得程序的返回值?

我知道可以读取pipe道输出命令吗? 但是获得回报值呢? 例如,我想执行: execl("/bin/ping", "/bin/ping" , "-c", "1", "-t", "1", ip_addr, NULL); 我怎么能得到返回值的ping命令,以找出它是否返回0或1?

constexpr和初始化一个静态const void指针reinterpret强制转换,哪个编译器是正确的?

考虑下面的一段代码: struct foo { static constexpr const void* ptr = reinterpret_cast<const void*>(0x1); }; auto main() -> int { return 0; } 上面的例子在g ++ v4.9( Live Demo )中编译得很好,但是在v3.4( Live Demo )中编译失败,并且产生下面的错误: 错误:constexprvariables'ptr'必须由一个常量expression式初始化 问题: 两个编译器哪一个按照标准是正确的? 宣称这种expression方式的正确方法是什么?

在多个cpps中包含相同的标题,重复出现多重定义错误

所以,无论我怎么做,似乎都无法避免让Dev C ++在同一个项目中的多个源代码文件中包含相同的头文件,从而导致无数的多重定义错误。 我宁愿避免将我所有的源代码转储到一个文件中,只包含一次头文件,因为这会使我的文件变得非常长,难以pipe理。 基本上,这是发生了什么事情: #ifndef _myheader_h #define _myheader_h typedef struct MYSTRUCT{ int blah; int blah2; } MYSTRUCT; MYSTRUCT Job_Grunt; MYSTRUCT *Grunt = &Job_Grunt; MYSTRUCT Job_Uruk; MYSTRUCT *Uruk = &Job_Grunt; int Other_data[100]; void load_jobs(); #endif 示例Cpp文件(他们几乎都是这样的): #include "myheader.h" void load_jobs(){ Grunt->blah = 1; Grunt->blah2 = 14; Uruk->blah = 2; Uruk->blah2 = 15; return; } 请记住,我有大约5个CPP文件,包括这一个头,每一个处理在头文件中find不同types的结构。 […]

我可以使用CreateFile,但强制句柄到一个std :: ofstream?

有没有办法利用Win32 API中的文件创build标志,如FILE_FLAG_DELETE_ON_CLOSE或FILE_FLAG_WRITE_THROUGH ,如http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx所述 ,但是然后强制该句柄成std :: ofstream? 与stream媒体的接口显然是平台独立的; 我想强制一些依赖于平台的设置在“引擎盖下”。

关于C#协方差的问题

在下面的代码中: interface I1 { } class CI1: I1 { } List<CI1> listOfCI1 = new List<CI1>(); IEnumerable<I1> enumerableOfI1 = listOfCI1; //this works IList<I1> listofI1 = listOfCI1; //this does not 我能够将我的“listOfCI1”分配给IEnumerable<I1> (由于协方差) 但为什么我不能把它分配给IList<I1> ? 对此,我甚至不能做到以下几点: List<I1> listOfI12 = listOfCI1; 不应该使用协方差来将派生types分配给基types?

EF4 Code First:如何在不添加导航属性的情况下添加关系

我应该如何使用Code First定义关系,但不使用任何导航属性? 以前,我通过在关系的两端使用导航属性定义了“一对多”和“多对多”。 并在数据库中创build适当的关系。 这里是一个类的样子的简化版本(为了简单起见,我把多关系转换为一对多关系)。 public class User { public string UserId { get; set; } public string PasswordHash { get; set; } public bool IsDisabled { get; set; } public DateTime AccessExpiryDate { get; set; } public bool MustChangePassword { get; set; } public virtual Role Role { get; set; } } public class […]

在C ++中调用私有方法

这纯粹是一个理论问题,我知道如果有人宣称某​​种方法是私人的,那么你可能不应该这么叫。 我设法调用私有虚拟方法和更改私人成员的实例,但我不知道如何调用一个私人的非虚拟方法(不使用__asm )。 有没有办法获得指针的方法? 还有其他的方法吗? 编辑:我不想改变类的定义! 我只想要一个黑客/解决方法。 🙂