Tag: C#的

我应该通过引用传递一个shared_ptr?

传递shared_ptr的最佳实践是什么? 目前我通过shared_ptr函数参数如下所示: void function1( shared_ptr<TYPE>& value );

argc能溢出吗?

我在这里徘徊,看到了这个问题 。 然后我开始怀疑是否可以溢出argc。 标准说argv[argc]必须是一个空指针,但是如果argc溢出,这将是错误的。 (我写了一个小C程序和一个python脚本来testing它,但得到了一个MemoryError 。) 谢谢! 国际标准的基本原理 – 编程语言 – C§5.1.2.2.1 程序启动 argc和argv作为main参数的规范认可了大量的先前的实践。 argv[argc]必须是一个空指针,以便在列表的末尾提供冗余检查,同样也是基于惯例。

Http状态码与libcurl?

在调用curl_easy_perform后,如何获得HTTP状态码(例如200或500)?

使用std :: addressof()函数模板,而不是在C ++中使用&(地址)运算符有什么好处吗?

如果addressof运算符运行良好,那么为什么C ++引入了addressof()函数? &运算符从一开始就是C ++的一部分 – 为什么这个新函数被引入呢? 它是否比C &运营商提供任何优势?

为什么定义\ 0作为在C中的字符数组的第一个元素?

当我读取BlueZ源代码时,我经常看到像这样定义的char数组: // bluez/android/sco-msg.h static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket"; 将第一个元素定义为\0什么好处?

为什么?:导致转换错误而if-else不?

在代码中进行一些更改我使用下一行: uint a = b == c ? 0 : 1; Visual Studio显示我这个错误: 不能将types“int”隐式转换为“uint”。 存在明确的转换(您是否缺less演员?) 但是,如果我使用的代码: uint a; if (b == c) a = 0; else a = 1; 它工作正常,没有任何错误或警告。 为什么?

编译时间string散列

我已经阅读了几个不同的地方,使用C ++ 11的新string文字,可能在编译时计算string的哈希值。 然而,似乎没有人愿意出来说这将是可能的或将如何完成。 这可能吗? 运营商会是什么样子? 我特别感兴趣的使用这种情况。 void foo( const std::string& value ) { switch( std::hash(value) ) { case "one"_hash: one(); break; case "two"_hash: two(); break; /*many more cases*/ default: other(); break; } } 注意:编译时散列函数不必像我写的那样精确。 我尽我所能去猜测最终的解决scheme是什么样的,但meta_hash<"string"_meta>::value也可能是一个可行的解决scheme。

从32位应用程序读取64位registry

我有为AnyCPU编译的ac#unit testing项目。 我们的构build服务器是一个64位的机器,并安装了一个64位的SQL Express实例。 testing项目使用类似于以下内容的代码来标识.MDF文件的path: private string GetExpressPath() { RegistryKey sqlServerKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" ); string sqlExpressKeyName = (string) sqlServerKey.GetValue( "SQLEXPRESS" ); RegistryKey sqlInstanceSetupKey = sqlServerKey.OpenSubKey( sqlExpressKeyName + @"\Setup" ); return sqlInstanceSetupKey.GetValue( "SQLDataRoot" ).ToString(); } 这段代码在我们的32位工作站上工作正常,并且在构build服务器上工作正常,直到我最近使用NCover启用了代码覆盖率分析。 由于NCover使用32位COM组件,testing运行器(Gallio)以32位进程运行。 检查registry,下面没有“实例名称”键 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Microsoft SQL Server 有没有办法在32位模式下运行的应用程序访问Wow6432Node之外的registry?

标准C ++库中有哪些exception类

什么是包含在标准C ++库中的exception类,它们应该用于什么? 我知道有一些新的C ++ 11的例外,但我不知道他们是什么或他们在哪里。

是否有一个“空”合并运算符“相反”? (…用任何语言?)

空合并翻译大致return x, unless it is null, in which case return y return null if x is null, otherwise return xy我经常需要return null if x is null, otherwise return xy 我可以使用return x == null ? null : xy; return x == null ? null : xy; 不错,但是中间的null位总是困扰我 – 看起来是多余的。 我宁愿像return x :: xy; ,只有在它之前的内容不为null才会评估::内容。 我认为这几乎是一个空合并的反面,这种混合与简洁,行内空检查,但我[ 几乎 ]确定在C#中没有这样的运算符。 […]