Tag: C#的

这个混淆的C代码声称没有main(),但它真的做了什么?

#include <stdio.h> #define decode(s,t,u,m,p,e,d) m##s##u##t #define begin decode(a,n,i,m,a,t,e) int begin() { printf("Ha HA see how it is?? "); } 这是间接调用main吗? 怎么样?

如何删除前导零

如何使用C#删除nvarchar数据types中的前导零? 例如在下面的数字中,我想删除前导零。 0001234 0000001234 00001234

C ++ 11中的async(launch :: async)是否会使线程池过时,以避免代价高昂的线程创build?

它与这个问题松散地相关: std :: thread是在C ++ 11中汇集的吗? 。 虽然问题不同,但意图是一样的: 问题1:使用自己的(或第三方库)线程池以避免代价高昂的线程创build仍然有意义吗? 在另一个问题的结论是,你不能依靠std::thread汇集(它可能或可能不)。 然而, std::async(launch::async)似乎有更高的机会被汇集。 它不认为这是由标准强制的,但恕我直言,我希望所有好的C ++ 11实现将使用线程池,如果线程创build速度慢。 只有在创build新线程便宜的平台上,我才会期望它们总是产生一个新的线程。 问题2:这只是我的想法,但我没有事实可以certificate。 我很可能是错的。 这是一个受过教育的猜测吗? 最后,在这里,我提供了一些示例代码,首先显示了我认为线程创build可以通过async(launch::async) : 例1: thread t([]{ f(); }); // … t.join(); 变 auto future = async(launch::async, []{ f(); }); // … future.wait(); 示例2:启动并忘记线程 thread([]{ f(); }).detach(); 变 // a bit clumsy… auto dummy = async(launch::async, []{ f(); […]

如何正确使用存储库模式?

我想知道我应该如何分组我的仓库? 就像我在asp.net mvc和我的书中看到的例子,他们基本上每个数据库表使用一个存储库。 但是,这看起来像很多的知识库,导致你不得不在稍后调用许多存储库进行嘲弄和调整。 所以我猜我应该把他们分组。 但是我不知道如何分组。 现在我做了一个注册库来处理我所有的注册内容。 不过,我需要更新4个表格,之前我有3个库来做到这一点。 例如,其中一个表是许可证表。 当他们注册我看他们的密钥,并检查它,看看是否存在数据库中。 现在如果我需要检查这个许可证密钥或其他地方的其他地方,然后registry中的其他东西,会发生什么? 一个地方可以login(检查密钥是否没有过期)。 那么在这种情况下我会做什么? 重写代码(中断DRY)? 尝试将这两个存储库一起处理,并希望在其他某个时间点不需要任何方法(例如,也许我可能有一个方法来检查用户名是否被使用 – 也许我需要在别的地方)。 另外如果我把它们合并在一起,我会需要2个服务层去同一个存储库,因为我认为有一个网站的2个不同部分的所有逻辑将是漫长的,我必须有像ValidateLogin(),ValdiateRegistrationForm() ,ValdiateLoginRetrievePassword()等。 或者调用Repository,只是有一个怪异的名称? 创build一个具有足够通用名称的存储库似乎很难,因此您可以将其用于应用程序的许多位置,并且仍然有意义,我不认为在存储库中调用另一个存储库会是一个好的做法吗?

使用Boost.Log日志库的经验?

我正在考虑开始使用Boost.Log日志库 。 有谁使用Boost.Log? 请分享你在这方面的经验。 我正在考虑的其他库有Apache log4cxx(安装起来很麻烦,但是我的团队成员想要一些简单的入门)和Pantheios(同样的问题,因为它与额外的前端和后端一起工作)。

在Visual Studio中输出控制台应用程序而不是控制台

在Eclipse中使用Java进行控制台应用程序时,我看到输出被放置在IDE本身的文本框中,而不是像在Visual Studio中那样popup一个控制台。 这一点很方便,即使程序退出后,我仍然可以很好地使用写入的文本,因为它不会被擦除,直到我再次运行。 有没有可能实现像Visual Studio那样的东西? 我知道,而不是做 System.Console.WriteLine(str); 我可以 System.Diagnostics.Debug.WriteLine(str); 但并不完全相同,因为在输出窗口中会出现很多“垃圾”,就像所有加载的符号等一样。 更妙的是,当你运行你的应用程序时,是否有可能在IDE中完成所有的工作,而不是让控制台运行?

构build共享库时,-fPIC意味着什么?

我知道“ -fPIC ”选项与解决个别模块之间的地址和独立性有关,但我不确定它的真正含义。 你可以解释吗?

如何设置Visual Studio C ++的unit testing

我很难弄清楚如何在Visual Studio 2008 for C ++中设置和使用testing框架,大概是使用内置的unit testing套件。 任何链接或教程将不胜感激。

期货与承诺

我对未来和承诺之间的区别感到困惑。 显然,他们有不同的方法和东西,但是实际的用例是什么? 是吗?: 当我pipe理一些asynchronous任务时,我将来会用“未来” 当我是asynchronous任务时,我使用promise作为返回types,以允许用户从我的承诺中获得未来

A()= A() – 为什么编译?

class A {}; int main() { A() = A(); return 0; } 为什么这个代码编译? 在赋值运算符左侧不应该有一些错误,应该放在左值? 是()左值? g ++ 4.7版本