小编ste*_*ssa的帖子

错误:'unique_ptr'不是'std'的成员

我想它是非常自我解释的 - 我似乎无法使用C++ 11的功能,即使我认为我已经正确设置了所有东西 - 这可能意味着我没有.

这是我的代码:

#include <cstdlib>
#include <iostream>

class Object {
    private:
        int value;

    public:
        Object(int val) {
            value = val;
        }

        int get_val() {
            return value;
        }

        void set_val(int val) {
            value = val;
        }
};

int main() {

    Object *obj = new Object(3);
    std::unique_ptr<Object> smart_obj(new Object(5));
    std::cout << obj->get_val() << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的g ++版本:

ubuntu@ubuntu:~/Desktop$ g++ --version
g++ (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see …
Run Code Online (Sandbox Code Playgroud)

c++ g++ unique-ptr c++11

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

C++ [错误]没有匹配的函数用于调用

由于一些错误,我无法编译我的代码.

其中一些:

在函数'int main(int,char**)'中:

[Error] no matching function for call to 'deckOfCards::shuffle(deckOfCards&)'

[Note] candidate is:

In file included from main.cpp

[Note] void deckOfCards::shuffle(std::vector<Card>&)

[Note] no known conversion for argument 1 from 'deckOfCards' to 'std::vector<Card>&'

[Error] 'dealCard' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
#include <iostream>

    using namespace std;


    class Card
    {
        private:
            int m_suit;
            int m_face;
        public:
            Card(int face, int suit);
            static string suits[];
            static string faces[];
            string toString(string s_face, string s_suit);
            int getFace();
            void setFace(int face);
            int getSuit();
            void setSuit(int …
Run Code Online (Sandbox Code Playgroud)

c++ class

11
推荐指数
2
解决办法
12万
查看次数

如何在visual studio 2010中"激活"c ++ 11标准?

我是c ++编程的新手,我需要在VS 2010项目中使用Thread类.我找到了这个参考,但是当我尝试以下内容时:

#include <thread>
Run Code Online (Sandbox Code Playgroud)

VS 2010显然告诉我'错误:无法打开源文件"线程"'.我知道我需要以某种方式"激活"c ++ 11标准.我甚至不知道从哪里开始.

那么我应该怎么做才能在visual studio 2010中使用()c ++ 11标准?

c++ multithreading visual-studio-2010 c++11

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

参数化类的参数可以用在外部函数定义中吗?

假设我有一个参数化类,foo并且在其中有一个简单的setter.

class foo #(type T = int);
    T member;

    extern function T get_member();
endclass
Run Code Online (Sandbox Code Playgroud)

如果我尝试在类范围之外定义此函数,我会得到T的未知类型错误.

function T foo::get_member();
    return member;
endfunction
Run Code Online (Sandbox Code Playgroud)

很公平,你会在C++中得到同样的错误(SV似乎继承了很多模板/参数化机制).因此,在C++中,您可以通过在函数定义之前提供模板声明来解决此问题,因此编译器可以识别所述模板.像这样的东西:

template <typename T>
function T foo::get_member();
    return member;
endfunction
Run Code Online (Sandbox Code Playgroud)

SystemVerilog中是否存在类似的机制,如果存在,它是什么?如果没有那么很明显我必须在类体中定义所有参数化函数/任务.

system-verilog

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