小编Eri*_*c B的帖子

Eclipse CDT C++枚举"无法解析"

我正在使用C++/OpenGL在Eclipse CDT中开发游戏,它编译并运行得很好,但由于某种原因,我声明的枚举(SCREEN_MAIN_MENU)在红色曲线中加下划线并突出显示符号SCREEN_MAIN_MENU无法解析.这是一个公然的谎言,我如何让Eclipse识别它?

Screens.h:

#ifndef SCREENS_H
#define SCREENS_H

enum {
SCREEN_MAIN_MENU,
SCREEN_LOADING,
SCREEN_GAME
};

class Screen{
public:
    static void change(int screen);
    static void render();
};

#endif
Run Code Online (Sandbox Code Playgroud)

Screens.cpp:

#include "screens.h"
#include "gui.h"
#include "global.h"

extern Global global;

void Screen::change(int screen){
    global.screen = screen;
}

void Screen::render(){
if(global.screen == SCREEN_MAIN_MENU){ //HERE ARE THE RED SQUIGGLES!!!??
    global.text_renderer.print("Sidona", global.screen_width/2-40,
    global.screen_height-25);
    Gui::render();
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ eclipse enums eclipse-cdt

6
推荐指数
1
解决办法
7571
查看次数

Git在一个独立项目上分支

有没有理由在solo git repo中为功能创建分支?当我把它们合并回主人时,他们快进,并且没有真正的证据证明我甚至在第一时间分支.我应该打扰吗?

git

6
推荐指数
1
解决办法
304
查看次数

如何从 asp.net core 中的 openid 访问令牌获取声明?

我的应用程序使用 OpenId 进行身份验证,如下所示:

services.AddAuthentication(o =>
{
    o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    o.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(o =>
{
    o.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    o.Scope.Add("openid");
    o.Scope.Add("permissions");
    o.Authority = "https://localhost:44305";
    o.ClientId = "MyTestClient";
    o.ClientSecret = "MyTestClientSecret";
    o.ResponseType = OpenIdConnectResponseType.IdTokenToken;
});
Run Code Online (Sandbox Code Playgroud)

当我在身份验证后检查用户对象时,它仅具有来自 ID 令牌的声明,而不是来自访问令牌的声明。如何从访问令牌获取声明?

openid asp.net-core asp.net-core-2.0

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

std :: multiset :: iterator = NULL不再有效?

我有一些代码,我正在使用gcc 4.7(从3.1)更新到C++ 11

我有一个multiset定义为类的私有成员:

multiset <Object*, objectcomp> objects_;
Run Code Online (Sandbox Code Playgroud)

在代码中是一个看起来像这样的段(p_q是一对多集迭代器,抱歉这个讨厌的行,不能等到用auto替换它,哈哈):

void Terrain::removeObject(Object* obj){
    pair<multiset<Object*, objectcomp>::iterator, multiset<Object*, objectcomp>::iterator> p_q;
    multiset<Object*, objectcomp>::iterator p,q;
    q = NULL;
    p_q = objects_.equal_range(obj);
    for(p = p_q.first; p != p_q.second; p++){
        if(*p == obj) {q=p; break;}
    }
    if(q!=NULL){
        ... do stuff based on q no longer being null
    }
}
Run Code Online (Sandbox Code Playgroud)

这将不再编译.你不能再将迭代器设置为null吗?有什么选择?(nullptr也不起作用)

c++ c++11

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

关于抽象属性的MVC属性

我有一个抽象的模型

public abstract class Treasure {
    public abstract int Value { get; }
    public abstract string Label { get; }
}
Run Code Online (Sandbox Code Playgroud)

和实施

public class Coins : Treasure {
    [DisplayName("Coin Value")]
    public override int Value {
        get { ... }
    }

    [DisplayName("Coins")]
    public override string Label {
        get { ... }
    }
Run Code Online (Sandbox Code Playgroud)

当我使用Html.LabelFor它时,我的硬币对象在我的视图中不显示"硬币"作为其标签,它显示"标签".如果我将DisplayName属性移动到Treasure中,它可以工作......但是我需要能够为Treasure类的不同实现更改标签.这可能吗?

.net c# asp.net-mvc

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

列表属性的初始化程序语法

在使用List作为属性初始化类时,我目睹了一些奇怪的事情.这样做的时候

var stuff = new Stuff(){list = {1, 2, 3} };
Run Code Online (Sandbox Code Playgroud)

它编译,崩溃说列表为空.所以,将它添加到Stuff的构造函数中:

public Stuff(){
    list = new List<int>();
}
Run Code Online (Sandbox Code Playgroud)

列表现在已初始化为包含{1, 2, 3}似乎有意义的内容.但是,然后将构造函数更改为

public Stuff(){
    list = new List<int>(){1, 2, 3};
}
Run Code Online (Sandbox Code Playgroud)

并初始化如此

var stuff = new Stuff(){list = {4, 5, 6} };
Run Code Online (Sandbox Code Playgroud)

list被初始化为包含{1, 2, 3, 4, 5, 6}让我感到困惑.

这似乎不应该编译,或者不应该这样做.到底发生了什么?

c#

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

插入LINQ

我有一个未排序的整数列表:

1 3 1 2 4 3 2 1
Run Code Online (Sandbox Code Playgroud)

我需要对它进行排序,在每组相等数字之前插入一个0:

0 1 1 1 0 2 2 0 3 3 0 4
Run Code Online (Sandbox Code Playgroud)

有一种方法只用一个LINQ语句从第一个列表到第二个列表?我被困住了

from num in numbers
orderby num
select num
Run Code Online (Sandbox Code Playgroud)

然后是foreach循环,根据这些结果手动构建最终输出.如果可能的话,我想完全消除第二个循环.

c# linq

4
推荐指数
2
解决办法
121
查看次数

如何在ASP.NET Core中将依赖项注入模型中?

假设我有一个控制器动作,如下所示:

[HttpPost]
public async Task<IActionResult> Add([FromBody] MyModel model){
    await model.Save();
    return CreatedAtRoute("GetModel", new {id = model.Id}, model);
}
Run Code Online (Sandbox Code Playgroud)

为了开始model.Save工作,它需要一些依赖项:

public class MyModel{
    private readonly ApplicationDbContext _context;
    public MyModel(ApplicationDbContext context){
        _context = context;
    }
    public async Task Save(){
        // Do something with _context;
    }
}
Run Code Online (Sandbox Code Playgroud)

截至目前,上下文null位于MyModel的构造函数中。我该如何注射?我知道我可以将服务注入控制器并以这种方式对模型执行操作,但是如果我宁愿使用面向对象的方法而不是贫血的领域模型怎么办?根本不可能吗?

c# asp.net asp.net-core-mvc asp.net-core

4
推荐指数
2
解决办法
2764
查看次数

Eclipse多态性使用C++ 11 shared_ptr错误

给出以下示例代码:

#include <iostream>
#include <memory>
using namespace std;

struct A {
public:
    A(int aa) : a(aa) {}
    int a;
    virtual ~A() {}
};
struct B : A {
public:
    B(int aa, int bb) : A(aa), b(bb) {}
    int b;
};

void f(shared_ptr<A> a){
    shared_ptr<B> b = dynamic_pointer_cast<B>(a);
    if (b) {
        cout << b->b << endl;
    } else {
        cout << a->a << endl;
    }
}

int main() {
    auto a = make_shared<A>(3);
    auto b = make_shared<B>(7, 4);
    f(a);
    f(b);
    return …
Run Code Online (Sandbox Code Playgroud)

c++ eclipse polymorphism smart-pointers c++11

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

我有一份国家清单.我想按字母顺序排序,除了我想先放的两个国家

我有一份国家清单.我想按字母顺序排序,除了我想先放的两个国家.有没有一种简单的修改方法

from country in Countries
orderby country.Name
select country
Run Code Online (Sandbox Code Playgroud)

完成这个?

c# linq

0
推荐指数
2
解决办法
682
查看次数

获取前x个相等元素的索引

我需要在排序的整数列表中获取彼此相等的所有最大元素的索引.

所以给出这个清单

elements:   {1 , 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11, 12, 13, 13, 13}
index:       0   1  2  3  4  5  6  7  8  9  10 11 12  13  14  15  16  17  18
                                                                  ^   ^   ^
Run Code Online (Sandbox Code Playgroud)

我会得到这个输出

{16,17,18}
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经有了

list.Select((x, i) => new {x, i})
Run Code Online (Sandbox Code Playgroud)

要获得指数,但我不能使用OrderBy()带有First()Single()因为我需要的所有元素最多人指数,不只是极顶一个.

是否有一种优雅的方法来实现这一点(使用LINQ或其他方式)?

c# linq

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