相关疑难解决方法(0)

在.CPP文件中存储C++模板函数定义

我有一些模板代码,我宁愿存储在CPP文件中而不是标题中的内联.我知道只要您知道将使用哪些模板类型,就可以完成此操作.例如:

.h文件

class foo
{
public:
    template <typename T>
    void do(const T& t);
};
Run Code Online (Sandbox Code Playgroud)

.cpp文件

template <typename T>
void foo::do(const T& t)
{
    // Do something with t
}

template void foo::do<int>(const int&);
template void foo::do<std::string>(const std::string&);
Run Code Online (Sandbox Code Playgroud)

注意最后两行--foo :: do模板函数仅用于int和std :: strings,因此这些定义意味着应用程序将链接.

我的问题是 - 这是一个讨厌的黑客还是会与其他编译器/链接器一起使用?我目前只在VS2008上使用此代码,但是想要移植到其他环境.

c++ templates

484
推荐指数
8
解决办法
31万
查看次数

C#和Java中的泛型与C++中的模板有什么区别?

我主要使用Java和泛型相对较新.我一直在阅读Java做出错误决定或者.NET有更好的实现等.

那么,泛型中C++,C#,Java之间的主要区别是什么?每个人的利弊?

c# c++ java generics templates

203
推荐指数
6
解决办法
5万
查看次数

C++模板Turing-complete?

我被告知C++中的模板系统在编译时是图灵完备的.这篇文章以及维基百科都提到了这一点.

你能提供一个利用这个属性的计算的重要例子吗?

这个事实在实践中有用吗?

c++ templates turing-complete template-meta-programming

100
推荐指数
9
解决办法
3万
查看次数

在Java语法中,Class <?扩展某事>

Class<? extends Something>

这是我的解释,它是班级模板但课程?表示类的名称未确定,它扩展了Something类.

如果我的解释有问题,请告诉我.

java generics

53
推荐指数
4
解决办法
7万
查看次数

带有接口对象的C++模板

我有以下不编译的代码.

class Base {
    public:
        virtual ~Base() { };
};

class Derived : public Base { };

class NotDerived { };

template <typename T>
class Group { };

int main() {
    Group<Base> *g = NULL;

    g = new Group<Base>();       // Works
    g = new Group<Derived>();    // Error, but I want it to work

    g = new Group<NotDerived>(); // Error, as expected
}
Run Code Online (Sandbox Code Playgroud)

我知道这不会编译,因为它g是一种不同的类型Group<Derived>.为了在Java中工作,我会做一些事情Group<? extends Base> g,但据我所知,C++没有那个关键字.可以做些什么?

编辑:我想澄清,我不希望它可以设置不从派生类型Baseg.我已经更新了我的例子来解释这一点.

编辑2:我的问题有两个解决方案. 戴夫的发现简单易行.但 …

c++ inheritance templates

7
推荐指数
2
解决办法
5384
查看次数

为什么Java中的泛型?它与重载有何不同?

我想add()用Java 编写单个方法,可以添加整数,字符串等.泛型会帮助我.

我无法理解泛型的终极目标.我感到很困惑.

泛型与重载?

public Integer add(Integer i, Integer j){return i+j;}
public String add(String i, String j){return i+j;}
public <T> T add(T i, T j){return i+j;} //this gives me error.
Run Code Online (Sandbox Code Playgroud)

请让我离开它.

谢谢.

java generics

6
推荐指数
3
解决办法
2611
查看次数

Object <String>在Java中表示什么?

我是Java新手,但不是编程(我通常用Ruby编写代码).我在Java代码示例中看到的一件事是使用<>而不是()将params传递给对象.下面是一个代码示例(摘自Google Web Toolkit教程):

public void onValueChange(ValueChangeEvent<String> event) {
    String token = event.getValue();

    // depending on the value of the token, do whatever you need
    ...
}
Run Code Online (Sandbox Code Playgroud)

它与铸造有关还是别的什么?有人可以向我解释这表示或用于什么?谢谢!

java

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

如何在Java中编写泛型方法以支持比较和算术运算

我想在java中编写一个泛型方法,如下所示:

public <T extends Number & Comparable<T>> void test(T[] a){
    T b=a[0];
    if(a[0]>0){
        a[0]*=a[0];
        b+=a[1];
    }
}
Run Code Online (Sandbox Code Playgroud)

再后来,我可以提供任一Integer[]Double[]或其他Number亚型的方法.但我上面尝试的代码给了我错误.

请帮我.谢谢.

java generics

5
推荐指数
2
解决办法
1594
查看次数

用Java模拟指针?在科特林?

我试图模拟在另一个模糊的编程范例中使用的一种指针,所以我可以将一些代码移植到Java.另一种语言不是面向对象的,而是 Pascal的松散灵感.

在原始语言中,我们可以编写这样的代码.首先,使用文本.

// Start with text.
Text myVar = "Bonjour" 
Pointer myPointer = ->myVar       // Referencing a string variable, storing the reference in another variable of type `Pointer`.
Message( myPointer-> )    // Dereferencing the pointer, to retrieve `myVar`, and pass the string to a command `Display` that displays the message on screen in a dialog box.
Run Code Online (Sandbox Code Playgroud)

然后,切换到数字.

// Switch gears, to work with an number.
Integer vResult = ( Random % ( vEnd - vStart + …
Run Code Online (Sandbox Code Playgroud)

java types pointers

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

如何使用Java泛型方法?

我正在从C ++迁移到Java。现在,我正在尝试泛型方法。但是编译器总是抱怨以下错误

对于类型T HelloTemplate.java / helloTemplate / src / helloTemplate,未定义方法getValue()

错误指向t.getValue()行据我了解,T是类MyValue,它具有方法getValue

怎么了?我该如何解决。我正在使用Java1.8

public class MyValue {

    public int getValue() {
       return 0;
    }
}

public class HelloTemplate {

    static <T> int getValue(T t) {
        return t.getValue();
    }
    public static void main(String[] args) {
       MyValue mv = new MyValue();
       System.out.println(getValue(mv));
   }

}
Run Code Online (Sandbox Code Playgroud)

java generics

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