小编Nic*_*kin的帖子

模板别名的标识

我们考虑一组模板别名:

template<class T> using foo = T*;
template<class T> using bar = T*;
template<class T> using buz = foo<T>;

template< template<class>class TT > struct id {};

using id_foo = id<foo>;
using id_bar = id<bar>;
using id_buz = id<buz>;
Run Code Online (Sandbox Code Playgroud)

id_foo,id_bar,id_buz相同或不同类型的?是foo,bar,buz相同或不同的模板?

各种编译器对此有不同的看法.尤其,

  • MSVC 2015和clang 3.5对待它们都是不同的
  • gcc 4.9对待buz与...相同foo

第14.5.7章"别名模板"中的标准C++ 11目前还不清楚.

c++ standards templates c++11 template-aliases

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

无法在OS X 10.10上为Qt Creator设置自定义$ PATH

我将Qt Creator与自定义生成系统(忍者)一起使用。问题是传递给Qt Creator IDE的$ PATH变量绝对是原始的:/usr/bin:/bin:/usr/sbin:/sbin

因此,我必须编写bash -c '/path/to/ninja list of targets'而不是仅仅ninja list of targets在终端中执行构建步骤,而不是在IDE中。

我尝试了所有已知的食谱来设置$ PATH。

  • 〜/ .bash_profile和〜/ .profile
  • / etc /路径
  • /etc/paths.d/*
  • /etc/launchd.conf(setenv PATH .....
  • 〜/ Library / LaunchAgents / *。plist(sh -c 'launchtcl setenv PATH $PATH:.....'
  • /图书馆/LaunchAgents/*.plist

StackOverflow答案中描述了使用启动年龄的想法。

没有效果!我的自定义.plist文件中的任何任意环境var都可以正确设置-PATH以外的任何值。(我已经对其进行了简单的测试:创建了一个自定义构建步骤echo xzxzxz=$XZXZXZ path=$PATH,其中在我的启动代理中也设置了xzxzxz)。

有趣的是,如果我从bash会话('/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &)启动Qt Creator ,它将获得与bash本身相同的正确PATH。

同样有趣的是,稍后启动代理分配的PATH被覆盖。我在那写信sh -c 'launchctl setenv PATH $PATH:/HELLOWORLD',但是我没看到HELLOWORLD echo $PATH。因此,存在竞争条件,稍后有人会从/ etc / paths和/etc/paths.d重建PATH。

从而:

  • 是否有详尽而最新的解释如何在OSX …

macos bash qt launchd launch-agent

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

在Spyder IDE中,input()与感叹号(!)很奇怪

input()函数使用WinPython 3.3.5在Spyder IDE中的某些输入上返回奇怪的值:

>>>input('say:')
say:hello
hello
>>>input('say:')
say:hello!
hello!
>>>input('say:')
say:!
'evalsc(r"!")'
>>>input('say:')
say:!123
'evalsc(r"!123")'
>>>s = input('say:')
say:!
>>>type(s)
<class 'str'>
>>>repr(s)
'\'evalsc(r"!")\''
Run Code Online (Sandbox Code Playgroud)

为什么input()以这种奇怪的方式处理领先的惊叹号?

有趣的是,如果我从命令行运行相同的python,一切正常.但是,在Spyder IDE中,它让我变得愚蠢.

python input python-3.x spyder

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