问题列表 - 第45379页

我可以在成员函数上使用boost :: enable_if吗?

我正在编写模板类,我想允许另一种方法仅存在于某种模板类型.目前,该方法适用于所有模板类型,但会导致所有其他类型的编译错误.

使这更复杂的是它是一个重载的operator().不知道我想要做什么实际上是可能的.

这就是我现在拥有的:

template<typename T, typename BASE>
class MyClass  : public BASE
{
public:

    typename T& operator() (const Utility1<BASE>& foo);
    typename T const& operator() (const Utility2<BASE>& foo) const;
};
Run Code Online (Sandbox Code Playgroud)

我希望T&版本始终可用,但T const&只有Utility2<BASE>有效版本才可用.现在,两种方法都存在,但如果Utility2<BASE>无效,尝试使用const版本会产生奇怪的编译错误.我宁愿有一个明智的错误,甚至是"没有这样的成员函数"错误.

这可能吗?

编辑:阅读了升级文档,这是我提出的,它似乎工作:

template<typename T, typename BASE>
class MyClass  : public BASE
{
public:

    typename T& operator() (const Utility1<BASE>& foo);

    template<typename U>
    typename boost::enable_if<boost::is_same<Utility2<BASE>, U>, T>::type const &
    operator() (const U& foo) const;
};
Run Code Online (Sandbox Code Playgroud)

因此,除非有人试图将它与Utility2一起使用,否则它不存在,并且如果它对该BASE类型有效,则它们只能创建一个Utility2.但是当它对BASE类型无效时,MyClass不会浪费时间创建访问器方法.

c++ templates boost enable-if

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

使用Play Framework从html选择表单中检索数据

正如标题所说,我正在尝试从html选择表单中检索所选项目.我尝试使用以下代码执行此操作,但它不起作用!城市值始终为NULL但地址字段返回正确的值...

form.html:

#{extends '/Admin/admin.html' /}
 #{form @save(id)}

    #{ifErrors}
        <p class="error">
            Please correct these errors.
        </p>
    #{/ifErrors}

    <p>
        <label>Adresse</label>
        <input type="text" name="adress" value="${flash.adress}" id="adress" />
        <span class="error">#{error 'adress' /}
    </p>
    <p>
        <label>Ville</label>
        <select size="1" >
            #{list items:cities, as:'city'}
                <option name="city" id="city" value="${flash.city}">${city}</option>
            #{/list}
        </select>
        <span class="error">#{error 'city' /}
    </p>
    <p>
        <input type="submit" value="Publier l'annonce" />
    </p>

 #{/form}
Run Code Online (Sandbox Code Playgroud)

保存方法:

public static void save(long id, String adress, @Required Place city){ 
    System.out.println(city);
    Admin.index();
}
Run Code Online (Sandbox Code Playgroud)

java select playframework

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

如何转换HTML实体,如&#8211; 他们的性格等同?

我正在创建一个要保存在本地用户计算机上的文件(不在Web浏览器中呈现).

我目前正在使用html_entity_decode,但这不是转换字符&#8211;(这是n-dash)并且想知道我应该使用的其他功能.

例如,当文件导入软件时,而不是ndash或只是 - 它显示为&#8211;.我知道我可以使用str_replace,但如果它发生在这个角色上,由于数据是动态的,它可能会与许多其他人一起发生.

php character-encoding special-characters

16
推荐指数
2
解决办法
6万
查看次数

JAXB注释

我需要一些JAXB Annotations的帮助,我找不到好的文档帮助我解决这个问题.

我有一个我想要编组成XML的类.我的班级看起来像这样:

@XmlRootElement(name="car")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {
    "vid",
    "make",
    "model",
    "recalls",
    "engSpec"
})

public class Car {
    @XmlElement(name="vid", required=true)
    private String vid;
    @XmlElement(name="make", required=true)
    private String make;
    @XmlElement(name="model", required=true)
    private String model;
    @XmlElement(name="recalls", required=true)
    private ArrayList<Recall> recalls;
    @XmlElement(name="engSpec", required=true)
    private EngSpec engSpec;
...
Run Code Online (Sandbox Code Playgroud)

召回课看起来像这样:

@XmlRootElement(name = "recall")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {
        "type",
        "date"
})
public class Recall {
    @XmlElement(name="type", required=true)
    private String type;
    @XmlElement(name="date", required=true)
    private String date;
...
Run Code Online (Sandbox Code Playgroud)

所以它产生了这个XML输出:

<car>
 <vid>vid</vid>
 <make>make</make>
 <model>model</model>

 <recalls>
   <type>Recall1</type>
   <date>01/01/11</date>
 </recalls>
 <recalls> …
Run Code Online (Sandbox Code Playgroud)

java xml xsd jaxb xml-serialization

14
推荐指数
1
解决办法
3万
查看次数

如何将字典中的所有值相加?

假设我有一个字典,其中键映射到整数,如:

d = {'key1': 1,'key2': 14,'key3': 47}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是否有一种语法简约的方法来返回d-ie 62中的值的总和?

python hash dictionary sum

209
推荐指数
7
解决办法
26万
查看次数

ext js选项卡面板:默认情况下将加载哪个选项卡?

在extjs中,在tabpanel中,如果有多个选项卡,则在初始化面板时默认加载其中一个选项卡?第一个?有没有办法设置这个?

extjs

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

在C之前调用main之前的一些函数

我想在main功能之前做一些事情.我有多个源文件.在每个文件中,有一些工作需要在之前完成main.这在C++中没有问题,但在C语言中存在问题.

在C++中,这可以通过两种方式完成:

  1. 利用全局类/结构的构造函数.
  2. 将函数调用到全局变量

例如, static const int __register_dummy_ = __AddRegisterMetaInfo(...);

但是,在C中,无论哪种方式都是不可能的.显然,没有构造函数.所以,第一种选择本质上是不可能的.

我认为第二个选项是可能的,但不是用C编译的(我只用Visual C++测试过.它给出了C2099.).C只允许常量为非自动变量.

有没有办法在main之前调用一些函数?


编辑:似乎很多人误解了我真正想做的事情.很抱歉以简单的方式撰写此问题.

我需要做的是实现一种C++运行时类信息功能,就像MFC的方法一样.在这种方法中,我需要从所有源代码中获取一些信息.例如,假设每个源文件都有一个类的定义,我想查看所有信息(例如,类名和父类).最简单的方法是在每个文件中放置一个静态构造函数,每个构造函数访问一个全局数据结构并注册其信息.但是,我也想找到一种方法在C中实现类似的东西.所以,简单地调用pre_main_jobin main不能成为我的答案.

请注意,这种滥用静态构造函数的方法也可以在LLVM编译器套件中找到.每个优化/分析功能都作为通过实现.所有这些传递都是通过静态构造函数注册的.

c static-variables

6
推荐指数
2
解决办法
4036
查看次数

MediaWiki中的内联语法突出显示

是否有支持内联语法高亮显示的MediaWiki扩展?(即支持嵌入常规文本段落中的代码片段)

我目前使用的是SyntaxHighlight GeSHi,但我不确定它是否支持内联突出显示.

mediawiki syntax-highlighting

17
推荐指数
2
解决办法
8363
查看次数

Java程序不会编译

我正在jgrasp下制作这个程序而且我收到了一个错误.我检查了我的程序的拼写和语法,似乎是正确的.请帮助我 - 是否有一些我错过的导致我所有错误的东西?

import javax.swing.*;


public class Testscore
{
   public static void main(String[] args) 
    {
       int numberofTests = 0;

       double grade = new double[numberofTests];

       double startgrade = 0;

        int x = 1 ;

       String strInput;

    // Get how many tests are used

       strInput = JOptionPane.showInputDialog(null, "How many tests do you have? ");
       numberofTests = Integer.parseInt(strInput);

       grade = new double[(int) numberofTests];
         do

         {

       for (int index = 0; index < grade.length; index++)
       {
           strInput = JOptionPane.showInputDialog(null, "Enter Test Score." + (index …
Run Code Online (Sandbox Code Playgroud)

java

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

在main()之前可能需要做什么样的操作

我遇到了这个问题,询问如何在C中的main()之前执行代码,并提到C++的策略.我主要住在应用程序空间,所以在main()之前执行从未发生过.什么样的东西需要这种技术?

c c++ program-entry-point

19
推荐指数
2
解决办法
516
查看次数