Tag: C#的

为什么std :: declval添加引用?

std::declval是一个编译时间实用程序,用于构buildexpression式以确定其types。 它是这样定义的: template< class T > typename std::add_rvalue_reference<T>::type declval() noexcept; 这不是更简单吗? template< class T > T declval() noexcept; 引用返回types的优点是什么? 不应该叫做declref ? 我发现的最早的历史例子是n2958 ,它调用函数的value()但总是返回一个引用。 注意, decltype的操作数不需要有一个可访问的析构函数,也就是说,它不是在语义上被检查为一个完整的expression式。 template< typename t > t declprval() noexcept; class c { ~ c (); }; decltype ( declprval< c >() ) * p = nullptr; // OK

我如何使用VIM来做.Net开发

Visual Studio是事实上的编辑器,但是我们还有哪些其他选项可以避免沉重的用户界面,同时仍然与C#构build链集成? 寻找最好直接使用vi或vim选项,以及模拟vi和/或vim部分或全部function的选项。

C#解释器(不含汇编)

是否有一个即时可用的C#解释器,那不依赖于运行时编译? 我的要求是: 一个脚本引擎 必须处理C#语法 必须在中等信任环境下工作 不得使用运行时编译(CodeDomProvider …) 开源(或至less免费为个人和专业使用) 如果不清楚的话,我需要像Jint( http://jint.codeplex.com/ )这样的东西,但是它允许我编写C#脚本而不是JavaScript脚本。 谢谢你的帮助。

如何创build自定义CPU的C编译器?

假设我已经有了一个汇编器,那么为自定义CPU创build一个C编译器最简单的方法是什么? 由于C编译器生成汇编,有没有办法为各种C语言定义标准位和汇编代码段,重新编译编译器,从而获得目标硬件的交叉编译器? 编译器本身最好用C语言编写,构build为Linux或Windows的本地可执行文件。 请注意:我不问如何编写自己的编译器。 我在大学里学过这门课程,我知道一般的编译器编译器等等。在这种情况下,我只想configuration一些现有的框架,如果可能的话。 我不想修改语言,我只想要能够针对任意的架构。 如果答案是“这种方式不行”, 那么这些信息对于我自己和其他任何可能作出类似假设的人都是有用的。

auto &&做什么?

这是来自Scott Meyers的C ++ 11 Notes Sample的代码, int x; auto&& a1 = x; // x is lvalue, so type of a1 is int& auto&& a2 = std::move(x); // std::move(x) is rvalue, so type of a2 is int&& 我无法理解auto&& 。 我有一些auto理解,从中我会说, auto& a1 = x应使types的a1作为int& 从引用代码,这似乎是错误的。 我写了这个小代码,在gcc下运行。 #include <iostream> using namespace std; int main() { int x […]

TaskCompletionSource:何时使用SetResult()与TrySetResult()等

我试图围绕TPL,C#5中新的async / awaitfunction,以及TaskCompletionSource的奥秘。 有一件事情我不清楚的是什么时候使用SetResult , SetException和SetCancel与TrySetResult , TrySetException和TrySetCancel 。 这是MSDN必须说的: 如果任务已处于三种最终状态之一,则此操作将返回false:RanToCompletion,Faulted或Canceled。 如果基础任务已经被处置,这个方法也返回false。 好吧,我明白了,但它并没有真正提供任何指导什么时候或为什么要使用一个。 那么,交易是什么?

为什么在const成员结构中需要一个构造函数?

我有一个类似这样的代码: class AClass { public: struct AStruct { }; AClass(){} private: const AStruct m_struct; }; int main() { AClass a; } 它会抛出这个编译错误(与Clang LLVM版本5.1): error: constructor for 'AClass' must explicitly initialize the const member 'm_struct' 如果我为struct AStruct指定一个C ++ 11默认的构造struct AStruct ,我得到相同的错误: struct AStruct { AStruct() = default; }; 但是,这是通过写一个空构造的构造函数来解决的: struct AStruct { AStruct(){} // fixed }; […]

Moq:unit testing一个依赖于HttpContext的方法

考虑.NET程序集中的一个方法: public static string GetSecurityContextUserName() { //extract the username from request string sUser = HttpContext.Current.User.Identity.Name; //everything after the domain sUser = sUser.Substring(sUser.IndexOf("\\") + 1).ToLower(); return sUser; } 我想从使用Moq框架的unit testing中调用这个方法。 这个程序集是webforms解决scheme的一部分。 unit testing看起来像这样,但我缺lessMoq代码。 //arrange string ADAccount = "BUGSBUNNY"; string fullADName = "LOONEYTUNES\BUGSBUNNY"; //act //need to mock up the HttpContext here somehow — using Moq. string foundUserName […]

理解set / getsockopt SO_SNDBUF

您好我有以下程序来检查UDP套接字的发送缓冲区大小。 不过,我的回报值对我来说有点混乱。 我使用以下简单的应用程序: #include <sys/socket.h> #include <stdio.h> int main(int argc, char **argv) { int sockfd, sendbuff; socklen_t optlen; sockfd = socket(AF_INET, SOCK_DGRAM, 0); if(sockfd == -1) printf("Error"); int res = 0; // Get buffer size optlen = sizeof(sendbuff); res = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen); if(res == -1) printf("Error getsockopt one"); else printf("send buffer size […]

为什么datetime不能比较?

我的C#unit testing有以下说法: Assert.AreEqual(logoutTime, log.First().Timestamp); 以下信息为何失败: Assert.AreEqual failed. Expected:<4/28/2010 2:30:37 PM>. Actual:<4/28/2010 2:30:37 PM>. 他们不一样吗? 更新: 如果你只关心第二个,请使用这个: Assert.AreEqual(logoutTime.ToString(), log.First().Timestamp.ToString());