小编Kri*_*izz的帖子

如何通过引用对象来初始化boost :: any?

我想存储对象中boost::any对象的引用.如何初始化boost :: any对象?我试过了std::ref(),但是boost::any初始化了std::reference_wrapper<>.例如,以下内容

#include <boost/any.hpp>
#include <cxxabi.h>
#include <iostream>

int main(void)
{
  int s;
  int i = 0;
  boost::any x(std::ref(i));
  std::cout << abi::__cxa_demangle(x.type().name(), 0, 0, &s) << "\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

版画

std::reference_wrapper<int>
Run Code Online (Sandbox Code Playgroud)

我想要boost::any包含int&而不是.

c++ boost-any c++11

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

objective c如何获得给定坐标的地标

我有一个与反向地理编码有关的问题.

在我的应用程序中,我有一些坐标(不是我当前的坐标),我想将它们转换为地标.我挖了很多网站和代码,但它们都是关于当前位置的反向地理编码......

有没有办法获得指定坐标(不是当前位置)的地标?

如果有,请帮我一些代码或参考.

objective-c reverse-geocoding ios

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

是否可以手动修改IQueryable表达式

我很确定我知道答案是否定的,但作为最后的尝试,我想我会问这里的问题.

我首先使用EF代码以通常的方式查询表

_context.Set<Foo>().Where(f => f.Bar == 999);
Run Code Online (Sandbox Code Playgroud)

这会创建以下表达式(我刚刚写了这个,所以它可能是错的).

{SELECT 
[Extent1].[Test] AS [Test], 
[Extent1].[Test2] AS [Test2], 
FROM [dbo].[Foo] AS [Extent1]
WHERE 19 = [Extent1].[Bar]}
Run Code Online (Sandbox Code Playgroud)

现在,是否可以手动修改此查询以将表名更改为,例如,Foo10?(可能不是)

如果不这样做,是否有人知道我可以先在代码中"延迟绑定"表名的方式?

你可能想知道"为什么肮脏的黑客?" 像往常一样,这是一个遗留问题,数据库存在一些设计问题,无法更改.

提前致谢.

PS.我知道我可以使用Database.SqlQuery但不愿意.

c# linq-to-entities iqueryable code-first

5
推荐指数
0
解决办法
1547
查看次数

指针值*x&x和x

假设这段代码:

main()
{
    int *x;
    *x = 3;

    printf("%d %d %d\n", *x, &x, x);
    // output 3 5448392 2293524
}
Run Code Online (Sandbox Code Playgroud)

如果*x是价值; &x地址; 什么意味着价值x

c pointers

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

有没有办法在C中使用Objective-C库?

我想使用C中的以下代码(用arm-gcc编译)

NSString *newText;

CLLocationManager * locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
//[locationManager setDelegate:self];

CLLocation* location = [locationManager location];

newText = [[NSString alloc] initWithFormat: @"Your Position : %f %f", [location horizontalAccuracy], [location verticalAccuracy]];
Run Code Online (Sandbox Code Playgroud)

有没有办法在c中使用objective-c库(比如在c中使用c ++库)?

c iphone objective-c ios

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

在 C# 中调用 DLL

我想将结构传递给 C 函数,并编写以下代码。

当我运行它时,第一个函数 -Foo1正在工作,然后函数Foo出现异常。你能帮我理解是什么问题吗?...

C代码:

typedef struct 
{
    int Size; 
    //char *Array;
}TTest;

__declspec(dllexport) void Foo(void  *Test);
__declspec(dllexport) int  Foo1();

void Foo(void  *Test)
{
    TTest *X = (TTest *)Test;
    int i = X->Size;
    /*for(int i=0;i<Test->Size;Test++)
    {
        Test->Array[i] = 127;
    }*/
}

int Foo1()
{
    return 10;
}
Run Code Online (Sandbox Code Playgroud)

C# 代码:

using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    [StructLayout(LayoutKind.Sequential)]
    public class TTest 
    {
        public int Size; 
    }

    class Program
    {
        [DllImport(@"C:\.net …
Run Code Online (Sandbox Code Playgroud)

c c# pinvoke

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

将模板化基类的子类添加到没有超基类的容器中?

我正在尝试创建一个矢量(或任何真正的STL容器),它可以容纳一组作为一种特定类型的子类的各种对象.问题是我的基类是模板化的.

据我所知,我必须创建一个接口/抽象超级基类(不确定首选的C++术语是什么).我不想这样做,只是使用我的(模板化的)抽象基类.下面是一些示例代码.

基本上,有没有办法不要求WidgetInterface?那么告诉编译器忽略模板要求?如果我必须WidgetInterface,我会以正确的方式与以下?

#include <vector>
#include "stdio.h"

enum SomeEnum{
    LOW = 0,
    HIGH = 112358
};

// Would like to remove this WidgetInterface
class WidgetInterface{
public:
    // have to define this so we can call it while iterating
    // (would remove from Widget if ended up using this SuperWidget
    // non-template baseclass method)
    virtual void method() = 0; 
};

template <class TDataType>
class AbstractWidget : public WidgetInterface{
public:
    TDataType mData;
    virtual void method() = 0;
    // …
Run Code Online (Sandbox Code Playgroud)

c++ templates stl

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

C#using语句的替代语法来自动处理对象?

我想知道是否有人能想出一种方法来实现一个像C#中的using语句一样工作但机制更清晰的机制.

C++/CLR中,您可以编写

MyClass NewObject;
Run Code Online (Sandbox Code Playgroud)

MyClass这是一个托管类.一旦变量超出范围Dispose将被调用.从本质上讲,它与C#一样,using但是以更好的方式.

所以,而不是写作

using (MyClass NewObject1=new MyClass())
{
    xxxx;
    using (MyClass NewObject2=new MyClass()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

(我认为这看起来不是很干净,为每个新变量打开一个新块也很繁琐)

我更喜欢这样的东西:

autodispose MyClass NewObject1=new MyClass();
xxxx;
autodispose MyClass NewObject2=new MyClass();
Run Code Online (Sandbox Code Playgroud)

有人认为可以实现这样的东西吗?似乎AOP或代码契约的框架使用注入代码的机制,但我不确定他们是如何做到的.

.net c# idisposable

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

获取错误:矢量迭代器不兼容

我正在为管理酒店的班级制作一个程序.我能够成功地将客户登记入房间.但是当我试图从一个房间检出一个客户时,我得到一个运行时错误:矢量迭代器不兼容.我运行调试器,并说问题是在我的while循环的条件语句中,但我无法弄清楚问题是什么(我认为我正确使用了调试器).我尝试用其他类似错误查看其他帖子,但我无法找到解决方案.有人可以帮忙吗?

void Customer::removeRoomID(int rID)
{
    vector<int>::iterator iter;
    iter = roomsCheckedInto.begin();
    while(iter != roomsCheckedInto.end())   // <--DEBUGGER SAYS ERROR IN THIS LINE - ERROR: VECTOR ITERATOR INCOMPATIBLE
    {
        if(*iter==rID)
        {
            roomsCheckedInto.erase(iter);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++

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

如何在命令行中指定文本文件

我正在尝试创建一个从文本文件中读取的程序.我使用cmd并输入javac fileName.java编译,然后java -cp . fileName运行它.但是,我想通过写作来运行程序java fileName textInput.txt.我已经创建了该程序; 但我必须在代码中指定文本文件的名称.

我被告知args[0]应该是文本文件的名称,但我不知道如何实现它.

我没有发布我的代码,但告诉我是否需要.

java command-line

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

c#if else then语句与LINQ

我有以下代码:

if (intval == 0)
{
    var result = (from dm in datacontext.Trk
                  where dm.ID == 0
                  select dm);
}
else
{
   var result = (from dm in datacontext.Trk
                 where dm.ID != 0
                 select dm);
}

if (result != null)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

结果下面有一条简短的行if (result!= null) ,说明当前上下文中不存在名称结果.

不知道如何解决这个问题.我最初尝试过,var result = null但C#不喜欢这样.

c# linq inferred-type

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

在C中声明变量 - 很多方面?

我正和朋友讨论在C语言中声明一些变量的正确方法是什么,正好在for循环中.

他有一个我不记得的编译器,我有Dev-C++.

他是这样的:

for (int i = 0; i<10; i++)
// ... and it works
Run Code Online (Sandbox Code Playgroud)

我做:

int i;
for (i = 0; i<10; i++)
// ... and it works
Run Code Online (Sandbox Code Playgroud)

如果我这样做,Dev-C++会给我一个错误.什么是技术上正确的方法?我被教导按照我的方式去做,但现在我很困惑,因为他以其他方式做到这一点并且对他有用D:

c

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