我在2个网站上有2个不同的图像:
如果我有2个起源创建一个Amazon的Cloudfront分布:www.siteA.com
和www.siteB.com
,然后我呼吁uniqueDistributionID.cloudfront.net/avatar.png
,然后avatar.png
将被退回?中的一个siteA
还是一个siteB
?
为什么不呢?
试图了解Cloudfront发行版中冲突的可能性.
conflict cdn content-delivery-network name-conflict amazon-cloudfront
如果我在log
某处定义名称空间并使其在全局范围内可访问,则会与double log(double)
标准cmath
标题冲突.实际上,大多数编译器似乎也同意它 - 大多数版本的SunCC,MSVC,GCC - 但GCC 4.1.2没有.
不幸的是,似乎没有办法解决歧义,因为using
声明对于命名空间标识符是不合法的.你知道我可以log::Log
在全局命名空间中编写任何方式cmath
吗?
谢谢.
编辑:有人会知道C++ 03标准对此有何看法?我原以为范围运算符足以消除log
下面代码示例中的使用歧义.
#include <cmath>
namespace foo
{
namespace log
{
struct Log { };
} // namespace log
} // namespace foo
using namespace foo;
int main()
{
log::Log x;
return 0;
}
// g++ (GCC) 4.1.2 20070115 (SUSE Linux)
// log.cpp: In function `int main()':
// log.cpp:20: error: reference to `log' is ambiguous
// /usr/include/bits/mathcalls.h:110: …
Run Code Online (Sandbox Code Playgroud) 我想知道你想要使用相同基础包的子项目的正确/最简单/最pythonic方式.我们目前有这样的文件结构:
trunk\
proj1\setup.py
company_name\__init__.py + proj1's code
proj2\setup.py
company_name\__init__.py + proj2's code
Run Code Online (Sandbox Code Playgroud)
我们希望保持命名空间company_name对我们所有的项目都是通用的(也许这本身就是unpythonic?)但是当proj1和proj2安装在开发模式下时,第一个安装会被破坏.它看起来import company_name...
很困惑在哪个company_name包中查找它并抓取第一个/最后一个/随机一个.
通常如何在更大的python项目中处理?是否可以通过构建某种巨型蛋的主干中的setup.py来解决这个问题?我没有在谷歌或堆栈上找到任何相关信息,所以任何信息甚至只是链接非常感谢!
编辑:我刚尝试在根文件夹中添加setup.py
...
namespace_packages = ['company_name'],
package_dir = {'company_name' : ['proj1/company_name', 'proj2/company_name']}
...
Run Code Online (Sandbox Code Playgroud)
适当pkg_resources.declare_namespace(__name__)
的__init_.py
文件,但./setup.py bdist_egg
只是给出:
company_name setup命令中的错误:分发包含名称空间包'company_name'的模块或包
我正在使用以下类型类:
module T where
class T a where
v :: a
Run Code Online (Sandbox Code Playgroud)
T Int
我实现的一个实例:
import T
import A (av)
instance T Int where
v = 0
main = putStrLn (av ++ show v)
Run Code Online (Sandbox Code Playgroud)
还有一个模块,我想使用一个值,也有一个实例T Int
.
module A where
import T
instance T Int where
v = 0
av = "value from A"
Run Code Online (Sandbox Code Playgroud)
问题是这不起作用:
$ runghc Main.hs
Main.hs:4:9:
Duplicate instance declarations:
instance T Int -- Defined at Main.hs:4:9-13
instance T Int -- Defined at A.hs:3:9-13
Run Code Online (Sandbox Code Playgroud)
Haskell抱怨同一个实例有2个声明.我如何告诉他不要从中导入实例B
,或统一这两个实例,或仅使用实例Main …
在下面,GCC将模板结构name
与name
类的模板成员函数混淆A
,而Clang编译精细(实例):
template<typename T>
struct name {};
struct A
{
template<bool B>
void name() { }
};
template<bool B, typename T>
void f(T& x) { x.template name<B>(); }
Run Code Online (Sandbox Code Playgroud)
函数f
显然是A
在本例中使用类型的参数调用,但它可能是其他任何东西,因此f
需要保留模板函数.
我不关心哪个编译器是正确的,我只需要一个解决方法因为我真的不知道除了之外的任何语法
x.template name<B>();
Run Code Online (Sandbox Code Playgroud)
调用成员函数,我看不出using
声明或任何其他消除歧义的方式如何适用.
编辑是的,我现在尝试了更明确的语法
x.T::template name<B>();
Run Code Online (Sandbox Code Playgroud)
哪个有效,但真的很难看.有什么办法让简短的语法有效吗?否则,最好将两个名称中的一个更改为......
EDIT2我原来的版本f
作品上一个普遍的参考T&&
,这需要最丑
using X = typename std::remove_reference<T>::type;
x.X::template name<B>();
Run Code Online (Sandbox Code Playgroud)
以防万一T
是一个参考...而这一切都是为了一个简单的函数调用.
我harmonic.m
在matlab路径中的一个文件中有一个函数原型:
function D = harmonic(A,B,C)
Run Code Online (Sandbox Code Playgroud)
其中,重要的A
是,预计将是double类型的矩阵.
在版本r2014a中,显然MATLAB已经创建了一个新的内置类方法double.harmonic
.因此,当我调用我的函数时,我在错误中得到错误harmonic
.我harmonic
在路径列表中更接近(which harmonic
显示我的路径)并没有帮助,因为我的第一个输入是A
并且harmonic(A,B,C)
似乎相当于A.harmonic(B,C)
.
有没有办法直接调用我的函数?要忽略这个double.harmonic
功能?我知道我可以从路径创建一个函数句柄,但那很讨厌.我正在寻找更优雅的解决方案或解决方法.最明显的是改变我的功能名称,但后来我会感到被欺负: - (.
鉴于此表:
create table test (
name text primary key
);
Run Code Online (Sandbox Code Playgroud)
我需要编写一个变量名与主键名冲突的 plpgsql 函数,我必须在on conflict
子句中使用它:
create or replace function func(
name text -- this variable name...
) returns void language plpgsql as
$$
begin
insert into test (name) values (name)
on conflict (name) do update -- ...conflicts with this line
set name = func.name;
end;
$$;
Run Code Online (Sandbox Code Playgroud)
这会编译,但会抛出一个不明确的列引用:
select * from func('one');
ERROR: column reference "name" is ambiguous
LINE 2: on conflict (name) do update
^
DETAIL: It could refer …
Run Code Online (Sandbox Code Playgroud) 我正在使用两个库编写一个角度应用程序:ngx-bootstrap 和 ng-apexcharts。ApexCharts 提供了一个名为 的角度分量,它接受类型为 的<apx-chart>
输入。html 看起来像这样:tooltip
ApexTooltip
<apx-chart
[series]="[{data: timelineData}]"
[chart]="timeline.chart"
[fill]="timeline.fill"
[legend]="timeline.legend"
[plotOptions]="timeline.plotOptions"
[xaxis]="timeline.xaxis"
[colors]="timeline.colors"
[title] = "timeline.title"
[tooltip]="timeline.tooltip"
[yaxis] = "timeline.yaxis"
></apx-chart>
Run Code Online (Sandbox Code Playgroud)
以下是角度顶点图表文档的链接:https ://apexcharts.com/docs/angular-charts/
ngx-bootstrap 提供了一个名为的模块TooltipModule
,当导入到应用程序模块中时,允许您在任何元素上放置tooltip
属性,并且当用户将鼠标悬停在该元素上时,它将创建一个工具提示。看起来是这样的:
<button type="button" class="btn btn-default btn-secondary mb-2"
tooltip="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.
placement="top">
Tooltip on top
</button>
Run Code Online (Sandbox Code Playgroud)
以下是 ngx-bootstrap 工具提示文档的链接:https://valor-software.com/ngx-bootstrap/#/tooltip
我试图一起使用这两个库,但是当我将工具提示模块添加到应用程序模块导入中时,出现编译错误。
@NgModule({
imports: [
BrowserModule,
TooltipModule.forRoot(),
...
]
...
Run Code Online (Sandbox Code Playgroud)
Error: src/app/activity-report/details/details.component.html:52:8 - error TS2322: Type 'ApexTooltip' is not assignable to …
Run Code Online (Sandbox Code Playgroud) name-conflict property-binding ngx-bootstrap angular apexcharts
我有一个包含eval和round函数名的语法,这些函数在python中已经是函数,当我尝试使用以下函数生成监听器:
antlr4 -listener -lib/src/grammar -Dlanguage = Python3 -o/gen -no-visitor /src/grammar/Grammar.g4
我得到以下内容:
error(134):Grammar.g4:138:0:符号与目标语言或运行时错误中生成的代码冲突(134):Grammar.g4:174:0:符号eval与目标语言中生成的代码或运行时错误冲突( 134):Grammar.g4:62:3:符号eval与目标语言或运行时错误中生成的代码冲突(134):Grammar.g4:134:3:符号与目标语言或运行时生成的代码发生冲突
我不能简单地将eval/round更改为其他名称,因为我正在编写不同dls的克隆.是否可以创建命名空间或以其他方式解决此问题而不更改我的语法语言语法?
考虑以下用于方形矩阵的(模板化)C++结构的精简示例(不需要模拟问题发生):
#include <array>
#include <complex>
using namespace std;
double conj (double &x) { return x; };
template <typename T, int N>
struct matrix: array<T,N*N> {
void conj() {
for (int ij=0; ij<100; ++ij) {
T z = (*this)[ij];
(*this)[ij] = conj(z);
}
}
};
int main() {
matrix<double,10> a;
a.conj();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想实现一个执行矩阵复共轭的方法,使用名称.conj()与<complex>库中使用的命名系统一致.但是,我收到以下错误:
$ g++ example.cpp -std=c++11
example.cpp: In instantiation of ‘void matrix<T, N>::conj() [with T = double; int N = 10]’:
example.cpp:19:12: required from here
example.cpp:12:26: error: no …
Run Code Online (Sandbox Code Playgroud) name-conflict ×10
c++ ×3
namespaces ×2
python ×2
angular ×1
antlr4 ×1
apexcharts ×1
cdn ×1
conflict ×1
function ×1
grammar ×1
haskell ×1
matlab ×1
name-clash ×1
overriding ×1
package ×1
parsing ×1
plpgsql ×1
postgresql ×1
setuptools ×1
sql ×1
templates ×1
typeclass ×1
upsert ×1