小编use*_*538的帖子

创建没有域的 XML 命名空间

通常教程会告诉您在创建新的 XML 命名空间时使用自己的域名。不是每个人都拥有域,它需要花钱,而且该站点可能与您使用 XML 的目的无关。

什么是好的替代方案?

这个答案中,示例只有some_identifier,但维基百科说它是一个 URI。URI 可以是 URL 或 URN。

URL 可以提供到模式的链接,但是命名空间的主要目的是作为唯一标识符,因此 URN 更适合。

如何生成唯一标识符?UUID 非常适合用作标识符,所以我搜索了一下, W3C上甚至有一个示例:

<?xml:namespace ns='urn:uuid:C4ED1820-6207-11d1-A29F-00AA00C14882/'
                src='http://www.w3.org' prefix='w3c' ?>
Run Code Online (Sandbox Code Playgroud)

为什么人们不更频繁地使用 UUID?UUID 命名空间的缺点或基于域的命名空间的优点是什么?如果您的域名过期,您可能会丢失它并且必须更改所有命名空间。

xml uuid uri namespaces

6
推荐指数
1
解决办法
814
查看次数

C#ToString("00")含糊不清

在这个页面上它说:

"00"说明符使该值四舍五入到小数点前面的最近数字,其中始终使用从零开始的舍入.例如,使用"00"格式化34.5将导致值35.

"00"是一个特例还是一个例子?为什么特别挑出来?

除"00"以外的格式的舍入模式是什么?它特别提到了整数舍入; 怎么样在小数点后n位舍入?

ToString("0")做什么?它是否与"00"相同但没有舍入?

我尝试了ToString("00"),它给了我一个零填充数字,我只期待一个数字.

c# tostring string-formatting ambiguity

1
推荐指数
1
解决办法
2880
查看次数

在C++中将临时转换为引用

我有以下代码:

#include <iostream>
#include <llvm/Module.h>
#include <llvm/LLVMContext.h>
#include <llvm/Support/raw_os_ostream.h>

int main()
{
    llvm::Module *TheModule = new llvm::Module("my cool jit", llvm::getGlobalContext());
    llvm::raw_os_ostream os(std::cerr);
    TheModule->print(os, NULL);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想做的是改变这个:

llvm::raw_os_ostream os(std::cerr);
TheModule->print(os, NULL);
Run Code Online (Sandbox Code Playgroud)

对此:

TheModule->print(llvm::raw_os_ostream(std::cerr), NULL);
Run Code Online (Sandbox Code Playgroud)

即删除不需要的临时变量.这在C++中是否可行?

打印功能参考:

void print(raw_ostream &OS, AssemblyAnnotationWriter *AAW) const
Run Code Online (Sandbox Code Playgroud)

那么有没有办法将临时对象转换为引用?这可以用C++ 11 rvalue引用来完成吗?我无法更改API.这不应该是rvalue引用的用例吗?

c++ rvalue c++11

0
推荐指数
1
解决办法
141
查看次数

标签 统计

ambiguity ×1

c# ×1

c++ ×1

c++11 ×1

namespaces ×1

rvalue ×1

string-formatting ×1

tostring ×1

uri ×1

uuid ×1

xml ×1