Tag: C#的

遍历元组

我如何迭代一个元组(使用C ++ 11)? 我尝试了以下,但是这不起作用: for(int i=0; i<std::tuple_size<T…>::value; ++i) std::get<i>(my_tuple).do_sth(); 错误1:抱歉,未实现:无法将“侦听器…”扩展为固定长度的参数列表。 错误2:我不能出现在一个常量expression式中。 那么,如何正确地迭代元组呢?

为什么在使用模板时会出现“无法parsing的外部符号”错误?

当我使用模板为一个类编写C ++代码,并在源(CPP)文件和头文件(H)之间拆分代码时,在链接最后的可执行文件时,会出现大量“无法parsing的外部符号”尽pipe目标文件被正确构build并包含在链接中。 这里发生了什么,我该如何解决?

在c ++头文件中使用“命名空间”

在我们所有的c ++课程中,所有的老师总是using namespace std; #include在.h文件中的#include之后。 这似乎是危险的,因为通过在另一个程序中包含这个头文件,我会得到名字空间导入到我的程序,也许没有意识到,打算或想要(头包含可以非常深的嵌套)。 所以我的问题是双:我是正确的, using namespace不应该在头文件中使用,和/或有一些方法来撤消它,如: //header.h using namespace std { . . . } 还有一个问题应该是这样的:一个头文件应包含所有与.cpp文件相对应的所有头文件,只有那些头文件定义需要的头文件,并且让.cpp文件包含其余的,或者不包含所有头文件它需要作为extern ? 这个问题背后的原因与上面相同:包含.h文件时,我不希望出现意外。 另外,如果我是对的,这是一个常见的错误? 我的意思是在现实世界的编程和在那里的“真实”的项目。 谢谢。

如何以pipe理的方式在.NET中获得父进程

我正在寻找很多方法来获取父进程在.NET中,但只findP / Invoke的方式。

如何使用iTextSharp将HTML转换为PDF

我想使用iTextSharp将下面的HTML转换为PDF,但不知道从哪里开始: <style> .headline{font-size:200%} </style> <p> This <em>is </em> <span class="headline" style="text-decoration: underline;">some</span> <strong>sample<em> text</em></strong> <span style="color: red;">!!!</span> </p>

你不能从std :: vectorinheritance

好吧,这真的很难承认,但我现在有一个强大的诱惑,从std::vectorinheritance。 我需要大约10个定制的vectoralgorithm,我希望它们是vector的直接成员。 但是,我自然也想拥有std::vector接口的其余部分。 那么,作为一个守法的公民,我的第一个想法是在MyVector类中有一个std::vector成员。 但是,我将不得不手动提供所有的std :: vector的接口。 键入的太多了。 接下来,我想到了私有inheritance,所以我不会using std::vector::member方法,而是在公共部分using std::vector::member 。 实际上这也很乏味。 在这里,我真的认为我可以简单地从std::vector公开inheritance,但是在文档中提供了一个警告,这个类不应该被多态使用。 我认为大多数开发人员都有足够的能力去理解这个不应该被多态地使用。 我的决定是绝对无理的吗? 如果是这样,为什么? 你可以提供一个替代scheme,其他成员实际上是成员,但不涉及重新input所有的vector接口? 我怀疑,但如果可以的话,我只会很开心。 此外,除了一些白痴可以写类似的事实 std::vector<int>* p = new MyVector 使用MyVector有没有其他现实的危险? 通过说现实我放弃像想象一个函数,需要一个指针向量… 那么,我已经说明了我的情况。 我犯罪了。 现在是由你来原谅我或不:)

从文本文件读取,直到EOF重复上一行

以下C ++代码使用ifstream对象从文本文件(每行有一个数字)读取整数,直到它遇到EOF 。 为什么它读取最后一行的整数两次? 如何解决这个问题? 码: #include <iostream> #include <fstream> using namespace std; int main() { ifstream iFile("input.txt"); // input.txt has integers, one per line while (!iFile.eof()) { int x; iFile >> x; cerr << x << endl; } return 0; } input.txt : 10 20 30 输出 : 10 20 30 30 注意 :我跳过了所有错误检查代码,以保持代码片段小。 […]

C或C ++中的单引号与双引号

什么时候应该在C或C ++编程中使用单引号和双引号?

检查一个类是否有给定签名的成员函数

我要求一个模板技巧来检测一个类是否具有给定签名的特定成员函数。 这个问题类似于http://www.gotw.ca/gotw/071.htm中的一个,但不一样:在Sutter的书中,他回答了C类必须提供成员函数的问题一个特殊的签名,否则程序将不能编译。 在我的问题,我需要做一些事情,如果一个类有这个function,否则做“别的东西”。 boost :: serialization也面临类似的问题,但我不喜欢他们采用的解决scheme:一个模板函数默认调用一个自由函数(你必须定义)一个特定的签名,除非你定义一个特定的成员函数在他们的情况下,使用特定types的2个参数进行“序列化”),否则会发生编译错误。 那就是实现侵入式和非侵入式序列化。 我不喜欢这个解决scheme有两个原因: 要非侵入性,你必须覆盖boost :: serialization命名空间中的全局“serialize”函数,所以你有你的客户端代码来打开命名空间提升和命名空间序列化! 解决这个混乱的堆栈是10到12个函数调用。 我需要为没有该成员函数的类定义一个自定义行为,并且我的实体位于不同的名称空间中(并且我不想在另一个名称空间中重写在一个名称空间中定义的全局函数) 你能给我一个解决这个难题的提示吗?

如何从generics类或方法的成员中获取T的types?

假设我在类或方法中有一个通用成员,所以: public class Foo<T> { public List<T> Bar { get; set; } public void Baz() { // get type of T } } 当我实例化类, T成为MyTypeObject1 ,所以类有一个通用的列表属性: List<MyTypeObject1> 。 这同样适用于非generics类中的generics方法: public class Foo { public void Bar<T>() { var baz = new List<T>(); // get type of T } } 我想知道,我的类包含什么types的对象。 那么名为Bar或者局部variablesbaz的list属性包含了什么types的T ? 我不能做Bar[0].GetType() ,因为列表可能包含零个元素。 我该怎么做?