Tag: 命名空间

将#include包装在名称空间块中是一个好主意吗?

我有一个C头被编写为C和C ++(它只使用公共子集的function,并使用extern "C"东西)。 问题是,这个头文件在全局命名空间中声明了一些东西。 我宁愿避免通常的原因。 我想过这样做: namespace foo { #include <foo.h> } 这是一个好主意吗? 我有替代品,不包括编辑头文件吗?

C ++:我应该使用“typedef”还是“使用命名空间”?

我正在编写一个具有多个相关模块的库。 当我包含来自不同模块的文件时,是否应该使用以下命令来parsing名称空间: using namespace project1::namespace1; class1 obj; 要么 typedef project1::namespace1::class1 class1; class1 obj; 每种方法的优点/缺点是什么? 我读的地方,我们应该在.H文件中使用typedef和using .C文件,这是可取的? 我遇到的“typedef”的一个问题是,如果我在第三个模块中包含原始类和“typedef”类,就会导致命名空间模糊。

编写健壮的R代码:命名空间,屏蔽和使用`::`运算符

简洁版本 对于那些不想通读我的“案例”的人来说,这就是本质: 什么是推荐的方法,尽量减less新包打破现有代码的机会,即使你写的代码尽可能健壮 ? 在什么时候最好地使用命名空间机制是推荐的方法 a)只使用贡献的软件包(比如在一些R分析项目中)? b)关于开发自己的软件包? 如何避免与正式类 (主要是参考类在我的情况下)的冲突,因为甚至没有一个类似于:: for classes(AFAIU)的命名空间机制? R宇宙的工作方式 这是在我脑海中徘徊了两年的东西,但我不觉得我已经达到了令人满意的解决scheme。 另外我觉得情况越来越糟。 我们看到在CRAN , github , R-Forge等等上的软件包数量不断增加,这真是太棒了。 在这样一个分散的环境中,组成R的代码库(为了简单起见,这就是基础R和贡献R )的代码基础在鲁棒性方面将偏离理想状态:人们遵循不同的惯例,有S3,S4 ,“S4参考课程”等等。如果有一个强制执行的“ 中央清算实例 ”,事情就不可能像“alignment”一样。 没关系。 问题 鉴于上述情况,使用R编写健壮的代码可能非常困难。 并非所有你需要的都在R基础上。对于某些项目,你最终会加载相当多的贡献包。 恕我直言,在这方面最大的问题是命名空间概念在R中使用的方式:R允许简单地写一个特定的函数/方法的名称,而不明确要求它的名称空间(即foo与namespace::foo ) 。 所以为了简单起见,这就是大家正在做的事情。 但是这样一来,名称冲突,破坏代码以及重写/重构代码的需要只是时间问题(或者加载的不同包的数量)。 充其量,你会知道哪些现有的function被新添加的软件包掩盖/重载。 最糟糕的是,你将不知道,直到你的代码中断。 几个例子: 尝试加载RMySQL和RSQLite的时候,他们不太一样 RMongo也会覆盖RMySQL的某些function 预测掩盖了许多与ARIMA相关的function方面的内容 R.utils甚至掩盖了base::parse例程 (我不记得哪些function特别是导致问题,但如果有兴趣,我愿意再看一遍) 令人惊讶的是,这似乎并没有打扰那里的很多程序员。 我试图在r-devel几次提高兴趣,没有任何意义。 使用::运算符的缺点 正如Dominick Samperi 指出的那样,使用::运算符可能会严重影响效率。 在开发你自己的包的时候,你甚至不能在自己的代码中使用::运算符,因为你的代码还没有真正的包,因此也没有名称空间。 所以我将不得不一直坚持foo方式,build立,testing,然后回去改变一切到namespace::foo 。 不是真的。 避免这些问题的可能解决scheme 将每个包中的每个函数重新分配给一个遵循特定命名约定的variables,例如namespace..foo ,以避免与namespace::foo (我在此概述一次)相关的低效率。 […]

将一个javascript命名空间分割成多个文件

比方说,我有这样的名字空间: var myNamespace = { foo: function() { }, bar: function() { } }; 将这段代码分离成分别定义foo和bar文件的最好方法是什么? 我不担心加载时间 – 我将在部署之前将其连接回一个文件。

PHP DateTime类命名空间

我使用symfony2框架,我想使用PHP的DateTime类(PHP版本是5.3)。 这里的声明: namespace SDCU\GeneralBundle\Entity; class Country { public function __construct(){ $this->insertedAt = new DateTime(); } } 但是,执行这个构造函数时,我得到一个错误,说没有“SDCU \ GeneralBundle \ Entity \ DateTime”类。 我一直在寻找DateTime的命名空间,但没有成功…任何想法?

'命名空间',但像'types'

这是我的程序类使用它被称为Time2我有参考添加到TimeTest我不断得到错误'Time2'是一个'命名空间',但使用像'types' 有人可以告诉我这个错误是什么,以及如何解决? namespace TimeTest { class TimeTest { static void Main(string[] args) { Time2 t1 = new Time2(); } } }

缺lessSystem.ServiceModel

我正在使用Win7(64位)VS2010expression式,我试图使用System.ServiceModel但我得到一个错误, System名称空间中没有ServiceModel : 名称空间“System”中不存在types或名称空间名称“ServiceModel”(是否缺less程序集引用?) 我看了\Windows\Microsoft.NET\Framework\v4.0.30319并有一些ServiceModel___.dll文件,但我不知道如果我失去了一些东西,或者如果他们损坏。 有什么build议? 谢谢,Yonatan

使用DataContractSerializer序列化没有名称空间的对象

如何从使用DataContractSerializer序列化的对象的XML表示中删除XML名称空间? 该对象需要被序列化为非常简单的输出XML。 最新最好的 – 使用.Net 4 beta 2 该对象将永远不需要反序列化。 XML不应该有任何xmlns:… namespace refs 任何exception和ISubObject的子types都需要被支持。 改变原始的对象将是非常困难的。 目的: [Serializable] class MyObj { string str; Exception ex; ISubObject subobj; } 需要序列化成: <xml> <str>…</str> <ex i:nil="true" /> <subobj i:type="Abc"> <AbcProp1>…</AbcProp1> <AbcProp2>…</AbcProp2> </subobj> </xml> 我用这个代码: private static string ObjectToXmlString(object obj) { if (obj == null) throw new ArgumentNullException("obj"); var serializer = […]

什么是“使用命名空间标准”的使用?

什么是using namespace std的using namespace std ? 我想在外行看到解释。

隐藏类库中仅包含内部types的名称空间?

我有一个类库,有几个只包含内部types的命名空间。 但是,在应用程序项目中使用类库时,名称空间显示为intellisense,但当然是空的。 在其他项目中使用intellisense时,是否有任何方法可以完全隐藏命名空间? 我试图将EditorBrowsableAttribute应用于所有内部类,但是我想要做的是将其应用于命名空间,这当然是不可能的。 或者,如果我足够关心这一点,唯一的select,我只是将types移动到一个名称空间,包含公共types?