小编Twi*_*fty的帖子

多种类型的模板专业化

标题有点含糊不清.

可以说我有一个模板定义为:

template < typename T >
void foo ( int x ) ;
template <>
void foo<char> ( int x ) ;
template <>
void foo<unsigned char> ( int x ) ;
template <>
void foo<short> ( int x ) ;
...
Run Code Online (Sandbox Code Playgroud)

内部都foo<signed>()foo<unsigned>()做同样的事情.唯一的要求是T8位类型.

我可以通过创建另一个模板来定义基于大小的标准类型.

template < typename T, size_t N = sizeof( T ) > struct remap ;
template < typename T, size_t > struct remap< 1 >
{
    typedef unsigned char value; …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++03

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

失去const挥发性限定词

我有一个编译错误:

error C3848: expression having type 'const unicode::endian_swap<T>'
             would lose some const-volatile qualifiers in order to call
             'unsigned long unicode::endian_swap<T>::operator ()(T &)'
Run Code Online (Sandbox Code Playgroud)

这个错误的描述,在这里,并没有真正解释发生了什么.

我无法在较小的样本中重现错误,但我可以显示我班级的基本布局.

template < typename T >
struct endian_swap
{
    endian_swap ( void ) {}
    T operator () ( T& _val ) const { return _val >> 8 | _val << 8; }
};

template < typename T >
struct test
{
    endian_swap< T > _swap;

    virtual void do_it ( ) const
    {
        unsigned short n …
Run Code Online (Sandbox Code Playgroud)

c++ templates volatile

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

如何从类外部调用父方法?

举个例子:

class A implements Serializable {
    serialize() {}
}
class B extends A {
    serialize() {}
}
Run Code Online (Sandbox Code Playgroud)

A 类是每个页面上使用的持久但最小的类。B 类是临时管理员专用(在设置屏幕上使用)类,它通过读取文件来填充成员。

我需要序列化对象并在数据库中存储两次,一次用于常规页面,第二次(寿命有限)用于管理页面。

$instance = new B(); // and populate
$data = serialize( $instance );
Run Code Online (Sandbox Code Playgroud)

这将始终调用重写的方法。有什么方法可以转换$instance为类型A以便我可以调用 的class A序列化方法吗?

php inheritance casting

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

如何安装Symfony 2.7?

Symfony的最新稳定版本是2.6.6但是,我想在核心组件中添加一些代码.我已经分叉了repo并且可以在本地克隆它,但它只是Symfony的核心.我需要完整的框架与AcmeDemoBundle完成,以便我可以运行和测试任何更改.

Symfony的页面建议使用安装程序,但只适用于稳定版本.在同一页面上,它给出了作曲家的安装方法,但是作曲家找不到2.7版本.

如何安装(当前开发)Symfony 2.7框架标准?

git symfony composer-php symfony-2.7

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

在学说中扩展实体类

我正在尝试扩展用作学说实体的类,但由于某种原因,我不断收到错误消息:

表“admin_subdivisions”上没有名称为“location_id”的列

当我说扩展时,我的意思是在 php 级别而不是数据库级别。我只是想创建另一个表,有一个额外的列。我有几个扩展以下抽象类的实体

abstract class LocationProxy
{
    /**
     * @ORM\Id
     * @ORM\OneToOne(targetEntity="Location", cascade={"ALL"}, fetch="LAZY")
     * @ORM\JoinColumn(name="location_id", referencedColumnName="location_id", nullable=false)
     * 
     * @var Location
     */
    protected $location;
}
Run Code Online (Sandbox Code Playgroud)

这些二级课程都没有给我带来任何问题。现在,我想扩展这个二级类

/**
 * @ORM\Entity()
 * @ORM\Table(name="admin_divisions")
 */
class AdminDivision extends LocationProxy
{
}
Run Code Online (Sandbox Code Playgroud)

有了这个

/**
 * @ORM\Entity()
 * @ORM\Table(name="admin_subdivisions")
 */
class AdminSubDivision extends AdminDivision
{
}
Run Code Online (Sandbox Code Playgroud)

但是,它会产生错误。谁能指出我做错了什么?

这是位置类定义

/**
 * @ORM\Entity()
 * @ORM\Table(name="locations")
 */
class Location
{
    /**
     * @ORM\Id
     * @ORM\Column(name="location_id", type="integer", options={"unsigned"=true})
     * 
     * @var int
     */
    private $id;
}
Run Code Online (Sandbox Code Playgroud)

php doctrine-orm

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

学说冲洗单一实体

原则接口Doctrine\Common\Persistence\ObjectManagerflush方法定义为不带参数。但是该实现Doctrine\ORM\EntityManager允许传递单个实体。

除了IMO不良的编程风格外,我还需要担心吗?

我知道,PHP将忽略任何未在方法中声明的额外参数。这将导致非ORM管理器刷新所有实体。

我问是因为我试图以一种可配置的ORM并可以在以后切换的方式编写代码。现在,在编写批处理导入类时,我发现在flush没有实体的情况下进行调用会导致内存泄漏,同时还会影响我在主导入循环之外使用的“进度/历史记录”实体。因此,仅刷新某些实体非常重要。

php doctrine doctrine-orm

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

聚焦 ShadowDOM 中的元素

我在 Shadow DOM 中创建了一个模式对话框,并在文档加载期间将其注入(使用暴力猴子)到页面中。该对话框包含一个简单的表单。这个想法是提示用户输入。

创建对话框时,它具有焦点。元素可以选项卡式显示,并且我可以挂钩键/鼠标事件。当触发窗口加载事件时就会出现问题。焦点返回到主体(通过document.activeElement在控制台中发出并通过为主体和 shodowroot 挂钩 focusin/out 来验证)。我可以挂接该focusin事件,但到目前为止,我尝试过的任何操作都无法将焦点返回到我的对话框。

对话框的精简版本:

<div id="twifty-translate-dialogue" style="">
  #shadow-root (open)
  <div class="outer" style="z-index: 2147483647; pointer-events: none;">
    <div class="container">
      <div id="header" class="">
      </div>
      <div id="languages" class="">
      </div>
      <div class="buttons">
        <button id="translate" class="button-translate" type="button">Translate</button>
        <button id="cancel" class="button-cancel" type="button">Cancel</button>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

我希望以下内容能够发挥作用:

window.onload = () => {
  document.getElementById("twifty-translate-dialogue").shadowRoot.getElementById("translate").focus()
}
Run Code Online (Sandbox Code Playgroud)

根据我的阅读,应该有两个活跃元素。和#twifty-translate-dialogue影子 DOM #translate。但:

document.activeElement
> <body>
document.getElementById("twifty-translate-dialogue").shadowRoot.getElementById("translate").focus()
document.activeElement
> #twifty-translate-dialogue
document.getElementById("twifty-translate-dialogue").shadowRoot.activeElement
> null
Run Code Online (Sandbox Code Playgroud)

我怎样才能恢复焦点?

更新:解决方法:

window.onload = () => {
  window.setTimeout(() …
Run Code Online (Sandbox Code Playgroud)

html javascript shadow-dom

5
推荐指数
0
解决办法
2516
查看次数

测试两个迭代器是否来自同一个对象

给定两个相同类型的std :: iterators,如何测试来自同一个对象(不是类)?请注意,我不是在问如何比较它们的值.

std::string foo = "foo";
std::string bar = "bar";

std::string::iterator iter1 = foo.begin();
std::string::iterator iter2 = bar.begin();

if ( iter1 == iter2 )
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

以上应该而且确实失败了.我怎样才能在运行时检查这个?查看源代码,我看到调用的相关方法iterator::_Compat()是一个void方法,它执行我想要的检查但是在失败时它会发出调试断言.它将在发布版本中被忽视.

进一步看,我看到迭代器(至少对于字符串)有一个公共_GetCont()方法.所以

if ( iter1._GetCont() == iter2._GetCont() )
Run Code Online (Sandbox Code Playgroud)

作品.但是,这是没有记录的,这让我相信它不安全.

我的问题是我如何以便携方式完成上述工作?

另请注意,这是迭代器模板类的一部分.我将无法控制第二个迭代器.

c++ templates iterator

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

MYSQL文档语法语法

我似乎无法在文档中找到他们在整个网站中使用的语法的描述。这迫使我进行猜测,这在很大程度上是有效的,但其他的却让我摸不着头脑。

以这个例子为例。阅读完该页后,得出的结论是管道'|'表示 OR,大括号{...}表示必需,方括号[...]表示可选。按照这种逻辑,我可以创建一个对我来说似乎不正确的声明INSERT my_table (foo) VALUE (DEFAULT)(注意缺少的)。INTO

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)] 
    [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
Run Code Online (Sandbox Code Playgroud)

我的想法INTO是可选的吗?有谁知道 MySQL 在哪里保存描述他们使用的语法语言的页面?

我目前无法访问 SQL 服务器,因此稍后才能对其进行测试。

mysql sql grammar

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

可用于 sysfs 读取的最大字节数

为了处理sysfs读取,我需要创建一个show添加到kobj_attribute结构中的函数。函数原型定义为

ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
            char *buf);
Run Code Online (Sandbox Code Playgroud)

显然我需要向buf参数写入数据,但是可以写入的字节数上限是多少?它是在任何地方定义的吗?

c linux-kernel sysfs

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