我很确定这是可能的,因为我很确定我已经看到它完成了.我认为这很棒,但我很乐意接受"这是一个可怕的想法,因为____"的答案.
假设我们有一个基本结构.
struct vertex
{
float x, y, z;
};
Run Code Online (Sandbox Code Playgroud)
现在,我想在这些变量上实现别名.
vertex pos;
vertex col;
vertex arr;
pos.x = 0.0f; pos.y = 0.5f; pos.z = 1.0f;
col.r = 0.0f; col.g = 0.5f; col.b = 1.0f;
arr[0] = 0.0f; arr[1] = 0.5f; arr[2] = 1.0f;
Run Code Online (Sandbox Code Playgroud)
理想情况下,第三种语法与数组无法区分.也就是说,如果我arr作为参考参数发送给期望其将存储数据的浮点数组的函数(例如许多OpenGL glGet函数),它将正常工作.
你怎么看?可能?可能但很愚蠢?
我正在为Joomla 1.5编写自己的组件.我正在试图找出如何为我添加的内容生成"别名"(友好的URL slug).换句话说,如果标题是"文章标题",Joomla the-article-title默认使用(如果你愿意,你可以编辑它).
是否有内置的Joomla功能可以为我做这个?
有办法轻松做到这一点吗?我在文件系统中有一个非常深入的目录,我访问了很多,所以我在我的主目录中创建了一个别名,但它不会让我进入它.有什么解决方案?谢谢!
假设我想使用假设语法在C#中创建一个类型的别名:
Currency = float;
Run Code Online (Sandbox Code Playgroud)
然后我离开并创建几千个使用Currency类型的文件.
然后我意识到我更喜欢使用FCL类型:
Currency = System.Single;
Run Code Online (Sandbox Code Playgroud)
很好,所有代码仍然有效.
...几个月后...
等等,我得到一些奇怪的舍入错误.哦,这就是为什么,System.Single只有7位数的精度.让这个数字达到15位:
Currency = System.Double;
Run Code Online (Sandbox Code Playgroud)
...多年后...
哦,浮点不准确; 乘法$0.0011/unit * 217,384 units暴露了使用浮点的一些限制.会计师反对"会计违规行为".没问题:
Currency = System.Decimal;
Run Code Online (Sandbox Code Playgroud)
...多年后...
国际申请?货币代码.Hmmmm.谢谢CodeProject:
Currency = Money;
Run Code Online (Sandbox Code Playgroud)
...后来...
噢,模式和做法.让我们混淆一些代码:
Currency = ICurrency;
Run Code Online (Sandbox Code Playgroud)
在所有这些废话代码中没有破坏.
我知道C#不支持这种级别的封装和使用我编写的语法的重现性.
我在本主题中看到,如果要使用参数,可以在shell登录脚本中添加函数而不是别名.但是,我将以下代码放在带有别名的部分的.cshrc文件中:
function gf()
{
grep -n $1 `find .` | grep -v "can't open"
}
Run Code Online (Sandbox Code Playgroud)
但是当我输入source .cshrc时,我收到错误消息:Badly placed()的.C shell的语法与Bash shell的语法不同吗?如果是这样,那么正确的语法是什么?
我正在尝试在Visual Studio 2013中的开发环境中为localhost定义别名.
当我使用以前版本的Visual Studio时,我使用Visual Studio开发服务器进行调试,我唯一需要做的就是更改我的hosts文件添加此条目:
127.0.0.1 localhost
127.0.0.1 localhostalias
Run Code Online (Sandbox Code Playgroud)
我在使用VS2013时遇到了问题.我已经浏览了整个互联网,我尝试了以下的事情,但我希望有人告诉我我做错了什么.我显然已经改变了主机文件......
在Web项目属性 - > Web的"默认情况下选择IIS Express的服务器"部分中,我尝试更改http://localhost:53944为http://localhostalias:53944但显示错误:" Unable to create the virtual directory. Cannot create the Web site 'http://localhostalias:53944'. You must specify "localhost" for the server name".
我还尝试更改位于<>\IISExpress\config中的applicationhost.config
<site name="<<Site name>>" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="<<Site Path>>" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:53944:*" />
</bindings>
</site>
Run Code Online (Sandbox Code Playgroud)
当我打开项目时,它被改为
<site name="<<Site name>>" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="<<Site Path>>" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:53944:*" …Run Code Online (Sandbox Code Playgroud) 我正在努力学习Go.
我在go中找到了这个简洁的Set实现:gopkg.in/fatih/set.v0,但我更喜欢用更明确的名称命名我的集合set.Set,执行如下操作:
type View set.Set
Run Code Online (Sandbox Code Playgroud)
本质上,我希望我的View类型继承set.Set的方法.因为,View 是一个 set.Set描述符.但是我知道Go在继承方面非常高峰,而且输入一般.
现在,我一直在尝试以下还挺继承,但试图利用一些功能,如当它导致错误的负载func Union(set1, set2 Interface, sets ...Interface) Interface或func (s *Set) Merge(t Interface):
type View struct {
set.Set
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法以类似Go的方式实现我想要的东西,或者如果我只是想将我的优秀'OO实践应用于丢弃它们的语言,请.
I wonder if it is valid C++ :
class Test {
struct PrivateInner {
PrivateInner(std::string const &str) {
std::cout << str << "\n";
}
};
public:
using PublicInner = PrivateInner;
};
//Test::PrivateInner priv("Hello world"); // Ok, private so we can't use that
Test::PublicInner publ("Hello World"); // ?, by using public alias we can access private type, is it ok ?
Run Code Online (Sandbox Code Playgroud) 简短形式:如何在C++ 11中为根(全局)命名空间定义别名?它可能看起来像
namespace root_namespace = :: ;
上面的裸体形式的范围解析运算符是全局命名空间的某个句柄的占位符.我在GCC Internals Manual中读到了这一点
... [编译器]整个中间表示的根是变量global_namespace.这是::在C++源代码中指定的命名空间...全局命名空间的名称是::,即使在C++中,全局命名空间是未命名的.
PS EDIT:对于迄今为止的受访者,我添加了一个痛苦的长篇表来解决以下长篇形式后的一些问题,因为它可能会澄清一些事情.和追随者,如果你看到我们而不是彼此说话,那就深入挖掘.
长形式:其潜在用途的一个例子如下.如果不满意,那么是的,这是一个学术问题; 看到这个之后痛苦的长形.
想象一下,你的老板在一天内闯入并说:"我刚读了一本关于后实证主义的书.摆脱它namespace ObjectiveReality." 在下面的代码,你需要做的"一切"是忽略我喜欢标线/* -> */这样/* <- */.你可以为目前的中间嵌套级别做到这一点; 但是,我不确定如何定义全局范围namespace current_authority以允许简单地省略第一个非全局命名空间.
#include <iostream>
#include <iomanip>
// ...
using cat_is_alive = std::true_type ; // because I like cats
using cat_is_alive = ::cat_is_alive ; // seems to work, see `g++ -v` …Run Code Online (Sandbox Code Playgroud) 我想写一些变量,比如
std::array<double, array_num> a;
Run Code Online (Sandbox Code Playgroud)
where array_num是const int表示数组的长度.但它很长,我想为它创建一个别名:
typedef std::array<double, array_num> my_array;
Run Code Online (Sandbox Code Playgroud)
这样对吗?我如何使用my_array像my_array<3>?