标签: instantiation

如何强制实例化C++模板的特定实例?

见标题.我有一个模板.我想强制模板的特定实例进行实例化.我该怎么做呢?

更具体地说,您可以强制抽象模板类进行实例化吗?


我可能会详细说明,因为我有同样的问题.在我的情况下,我正在构建一个库,一些模板实现很大,包含很多东西,但只生成几种类型.我想在库中编译它们并导出所有方法,但不包括带代码的头文件.

即:

template<class T>
OS_EXPORT_DECL class MyTmpl
{
    T *item1;
public:
    inline T *simpleGetT() { return(item1); } /* small inline code in here */ } 
    T *doSomeReallyBigMergeStuff(T *b); // note only declaration here
};

// *** implementation source file only seen inside library

template<class T>
MyTmpl<T>::doSomeReallyBigMergeStuff(T *b)
{
    ... a really big method, but don't want to duplicate it, 
        so it is a template ...
}
Run Code Online (Sandbox Code Playgroud)

我当然可以引用库中的所有方法来强制它们进行编译和导出,但是不希望向库添加不需要的代码,比如项的参数格式和调用它们的代码等.

????? 具体来说,我正在为多个版本的MSC和GCC以及英特尔编译器构建库.

c++ templates instantiation

49
推荐指数
2
解决办法
3万
查看次数

如何在Python中创建具有属性的内联对象?

在Javascript中它将是:

var newObject = { 'propertyName' : 'propertyValue' };
Run Code Online (Sandbox Code Playgroud)

怎么用Python做?

python dynamic-languages instantiation

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

在用c ++初始化对象之前声明一个对象

是否可以在不实例化的情况下在c ++中声明变量?我想做这样的事情:

Animal a;
if( happyDay() ) 
    a( "puppies" ); //constructor call
else
    a( "toads" );
Run Code Online (Sandbox Code Playgroud)

基本上,我只是想声明条件的外部,以便它获得正确的范围.

有没有办法在不使用指针和a在堆上分配的情况下执行此操作?也许引用聪明的东西?

c++ scope declaration instantiation

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

在PHP 5中,我可以动态地实例化一个类吗?

是否可以使用变量动态实例化一个类?例如在PHP中可能是这样的吗?

class foo
{
    public $something;
}

$class_name = "foo";

$f = new $class_name();
Run Code Online (Sandbox Code Playgroud)

php class dynamic instantiation

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

无法创建抽象类或接口的实例

我有一个类和一个接口,当我尝试实例化接口时,我收到一个错误:

无法创建抽象类或接口的实例

我的代码如下:

namespace MyNamespace
{
    public interface IUser
    {
        int Property1 { get; set; }
        string Property2 { get; set; }
        string Property3 { get; set; }
        void GetUser();
    }

    public class User : IUser
    {
        public int Property1 { get; set; }
        public string Property2 { get; set; }
        public string Property3 { get; set; }

        public void GetUser()
        {
           //some logic here...... 
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试实例化时,IUser user = new IUser();我收到一个错误:

无法创建抽象类或接口的实例

我在这做错了什么?

c# oop interface class instantiation

41
推荐指数
4
解决办法
13万
查看次数

使用Microsoft Visual C++的两阶段模板实例化到底是什么"打破"?

在SO上阅读问题,评论和答案,我一直听说MSVC没有正确地实现两阶段模板查找/实例化.

据我所知,到目前为止,MSVC++只对模板类和函数进行了基本的语法检查,并没有检查模板中使用的名称是否至少被声明了或者沿着这些行.

它是否正确?我错过了什么?

c++ templates instantiation visual-c++

37
推荐指数
4
解决办法
4828
查看次数

在Controller中调用模型方法

我在这里有一定的困难,我无法成功地调用它属于一种方法ProjectPage 模型ProjectPage 控制器.

我在我的ProjectPage控制器中:

def index
  @searches = Project.published.financed     
  @project_pages = form_search(params)
end
Run Code Online (Sandbox Code Playgroud)

在我的ProjectPage 模型中:

def form_search(searches)
  searches = searches.where('amount > ?', params[:price_min]) if check_params(params[:price_min])
  @project_pages = ProjectPage.where(:project_id => searches.pluck(:'projects.id'))
end
Run Code Online (Sandbox Code Playgroud)

但是,我无法成功调用该form_search 方法.

methods controller model ruby-on-rails instantiation

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

如何在Java中实例化一组地图?

我可以使用泛型声明一个地图数组来指定地图类型:

private Map<String, Integer>[] myMaps;
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何正确实例化它:

myMaps = new HashMap<String, Integer>[count]; // gives "generic array creation" error
myMaps = new HashMap[count]; // gives an "unchecked or unsafe operation" warning
myMaps = (Map<String, Integer>[])new HashMap[count]; // also gives warning
Run Code Online (Sandbox Code Playgroud)

如何在不收到编译器错误或警告的情况下实例化此数组映射?

更新:

谢谢大家的回复.我最终得到了List建议.

java arrays generics instantiation map

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

从文本名称实例化一个类

不要问我为什么,但我需要做以下事情:

string ClassName = "SomeClassName";  
object o = MagicallyCreateInstance("SomeClassName");
Run Code Online (Sandbox Code Playgroud)

我想知道有多少方法可以做到这一点,以及在哪种情况下使用哪种方法.

例子:

  • Activator.CreateInstance
  • Assembly.GetExecutingAssembly.CreateInstance("")
  • 任何其他建议将不胜感激

这个问题并不是一个开放式的讨论,因为我相信只有这么多方法可以实现.

c# string class instantiation

36
推荐指数
2
解决办法
3万
查看次数

如何在Swift中正确声明自定义对象数组?

这是我的自定义课程...不确定我是否遗漏了任何东西......

import UIKit

class baseMakeUp {
    var Image = UIImage()
    var Brand: String
    var Color: String
    var Rating: Int = 0

    init (Brand: String, Color: String) {
        self.Brand = Brand
        self.Color = Color
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在这里实例化......

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    let cellIdentifier = "cellIdentifier"

    var foundation: [[baseMakeUp]]
    var blush: [[baseMakeUp]]
    var eyes: [[baseMakeUp]]
    var lips: [[baseMakeUp]]
    var nails: [[baseMakeUp]]

    // put some test data in …
Run Code Online (Sandbox Code Playgroud)

arrays class instantiation ios swift

35
推荐指数
3
解决办法
7万
查看次数