如果我通过我的GCC 4.7快照传递下面的代码,它会尝试将unique_ptr复制到vector中。 #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } 显然,不能工作,因为std::unique_ptr是不可复制的: 错误:使用已删除的函数std :: unique_ptr <_Tp,_Dp> :: unique_ptr(const std :: unique_ptr <_Tp,_Dp>&)[with _Tp = int; _Dp = std :: default_delete; std :: unique_ptr <_Tp,_Dp> = std :: unique_ptr]' 试图复制初始化列表中的指针是否正确?
我想编译一个使用udis86库的程序。 其实我正在使用图书馆用户手册中给出的示例程序。 但是在编译时,它会给出错误。 我得到的错误是: example.c:(.text+0x7): undefined reference to 'ud_init' example.c:(.text+0x7): undefined reference to 'ud_set_input_file' . . example.c:(.text+0x7): undefined reference to 'ud_insn_asm' 我正在使用的命令是: $ gcc -ludis86 example.c -o example 如用户手册中的说明。 显然,链接器不能链接libudis库。 但如果我改变我的命令: $ gcc example.c -ludis86 -o example 它开始工作。 那么可以请某人解释第一个命令有什么问题?
注意:这是我刚刚开始C#时发布的。 随着2014年的知识,我可以真正地说,自动属性是曾经发生在C#语言的最好的事情之一。 我习惯于在C#中使用私有和公共字段来创build我的属性: private string title; public string Title { get { return title; } set { title = value; } } 现在,在.NET 3.0中,我们获得了自动属性: public string Title { get; set; } 我知道这是更多的哲学/主观的问题,但是有没有任何理由使用这些自动属性,除了保存每行的代码5行? 我个人的抱怨是这些属性隐藏了我的东西,我不是一个黑魔法的粉丝。 事实上,隐藏的专用字段甚至不会显示在debugging器中,这是可以的,因为get / set函数什么也不做。 但是当我想实际实现一些getter / setter逻辑时,我必须使用私有/公共对。 我看到了保存大量代码(一对六行)而不会丢失后来改变getter / setter逻辑的好处,但是我可以通过简单地声明一个公共字段“公共string标题” {get; 组; }块,从而甚至节省更多的代码。 那么,我在这里错过了什么? 为什么会有人想要使用自动属性?
看起来,C#3.0对象初始化程序语法允许在存在无参数构造函数的情况下,排除构造函数中的开放/closures括号对。 例: var x = new XTypeName { PropA = value, PropB = value }; 而不是: var x = new XTypeName() { PropA = value, PropB = value }; 我很好奇为什么构造函数打开/closures括号对在XTypeName后是可选的?
我一直在寻找一种方法来获取我的C程序中的terminal宽度。 我一直在提出的是: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } 但每次我尝试我得到 austin@:~$ gcc test.c -o test test.c: In function 'main': test.c:6: error: storage size of 'ts' isn't known test.c:7: error: 'TIOCGSIZE' undeclared (first use in this function) test.c:7: error: (Each […]
我有以下代码: Using cmd As SqlCommand = Connection.CreateCommand cmd.CommandText = "UPDATE someTable SET Value = @Value" cmd.CommandText &= " WHERE Id = @Id" cmd.Parameters.AddWithValue("@Id", 1234) cmd.Parameters.AddWithValue("@Value", "myValue") cmd.ExecuteNonQuery End Using 我不知道是否有任何方式获得最后的SQL语句作为一个string,应该看起来像这样: UPDATE someTable SET Value = "myValue" WHERE Id = 1234 如果有人想知道为什么我会这样做: logging(失败)的语句 有可能将其复制并粘贴到企业pipe理器进行testing
我有一个类,让我们叫它名为名为属性书。 有了这个属性,我有一个相关的属性。 public class Book { [Author("AuthorName")] public string Name { get; private set; } } 在我的主要方法中,我使用reflection,并希望获得每个属性的每个属性的键值对。 所以在这个例子中,我期望看到“作者”的属性名称和“AuthorName”的属性值。 问题:如何使用Reflection在我的属性上获取属性名称和值?
我有一个需要序列化并通过套接字连接进行传输的小对象层次结构。 我需要序列化对象,然后根据它是什么types反序列化它。 有没有一种简单的方法来做到这一点在C + +(如在Java中)? 有没有任何C ++序列化在线代码示例或教程? 编辑:只是要清楚,我正在寻找将对象转换为字节数组,然后回到对象的方法。 我可以处理套接字传输。
我想知道是否有类似C的解释器。也就是说,在Linuxterminal中,我可以input“python”,然后在该解释器中编码。 (我不确定解释正确的词)。 这对于testing不同的东西是非常有帮助的,我很好奇C是否有类似的东西。虽然我怀疑它。 我唯一能想到的就是C shell。
我有一个可爱的任务,即如何处理大文件被加载到我们的应用程序的脚本编辑器(这就像我们的内部产品快速macros的VBA )。 大多数文件大约300-400 KB这是很好的加载。 但是当他们超过100 MB时,这个过程很难(如你所期望的)。 会发生什么是该文件被读取并推入一个RichTextBox,然后导航 – 不要太担心这个部分。 编写初始代码的开发人员只需使用StreamReader即可 [Reader].ReadToEnd() 这可能需要很长时间才能完成。 我的任务是打破这一点的代码,阅读成块缓冲区,并显示一个进度条,并取消它的选项。 一些假设: 大多数文件将是30-40 MB 文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。 一旦内容被检索,我们计算出使用了什么终止符。 一旦加载了在richtextbox中渲染所需的时间,就不会有人担心。 这只是文本的初始负载。 现在提问: 我可以简单地使用StreamReader,然后检查Length属性(如ProgressMax),并发出一个读取设置的缓冲区大小,并在while循环WHILST内循环遍历一个后台工作,所以它不会阻止主UI线程? 然后在完成之后将stringbuilder返回到主线程。 内容将会转到一个StringBuilder。 如果长度可用,我可以初始化StringBuilder与stream的大小? 这些(在你的专业意见)好主意? 过去我曾经从Streams中读过一些内容,因为它总是会丢失最后的几个字节,但是如果是这样的话,我会问另外一个问题。