小编Att*_*ila的帖子

将MSVS 2010项目转换为MSVS 2012 RC但收到错误"C++标准不提供此类型的哈希值"

我有一个在MSVS 2010 SP1下工作正常的项目.我正在尝试将其转换为MSVS 2012 RC.我不得不改变一些东西,主要与C++头/ lib路径和MFC自定义东西有关.但我有最后一个障碍需要澄清.

在MSVC 2010中,我使用了很多unordered_map<basic_string<TCHAR>, int>或者map<basic_string<TCHAR>, int>.它汇编很好.但是在MSVS 2012中,我只是得到了这个错误:"C++标准没有为这种类型提供哈希"

在网络上搜索一个位后,我发现MSVS 2012应更接近C++ 11标准,并且该标准只定义的散列函数为基本类型和4点定义的字符串的类型(其中stringwstring,但basic_string不包括).所以我改变了所有basic_string<TCHAR>wstring,但无济于事......我仍然得到同样的错误.

我该怎么办才能再次编译我的应用程序?

c++ string map c++11 visual-studio-2012

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

Ofstream 不写入文件 C++

我有这个方法应该获取缓冲区并将一些内容写入文件:

void writeTasksToDevice()
{

TaskInfo *task;
unsigned int i = lastTaskWritten;

printf("writing elihsa\n");
outputFile.write(" Elisha2", 7);
//pthread_mutex_lock(&fileMutex);

for(; i < (*writingTasks).size(); i++)
{
    task = (*writingTasks).at(i);
    if(NULL == task)
    {
        printf("ERROR!!! in writeTasksToDevice - there's a null task in taskQueue. By "
                " design that should NEVER happen\n");
        exit(-1);

    }
    if(true == task->wasItWritten)
    {
        //continue;
    }
    else // we've found a task to write!
    {

        printf("trying to write buffer to file\n");
        printf("buffer = %s, length = %d\n", task->buffer, task->length);<====PRINT HERE …
Run Code Online (Sandbox Code Playgroud)

c++ io file ofstream

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

这个make文件有什么问题?

大家好我想创建一个简单的make文件并在cygwin中执行.这是文件内容

test: test.c
       gcc -c test.c -O3 -Wall -I.
test1: test1.c
              gcc -c test1.c -O3 -Wall -I.
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,只有第一个文件被编译而不是第二个文件.任何人都可以解释为什么以及正确的方法是什么?

c makefile

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

如何在Windows环境下运行Linux shell脚本

我有在Redhat操作系统上运行的清理脚本.

我有一个要求,我想在Windows环境中运行相同的脚本.

所以我有3个选择

  1. 为windows编写一个新脚本
  2. 使用某些工具将Linux脚本转换为Windows脚本.
  3. 使用Cygwin并运行脚本而不对linux脚本进行任何更改.

所以我想知道什么是最佳选择.

在此先感谢您的帮助

linux bash shell batch-file

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

当您不知道它将包含的参数类型时(如何构建框架),如何设计抽象方法

我正在设计一个框架来管理我们的移动客户端上的某些api调用和其他长时间运行的任务.我将在一个基本的java程序上设计和实现它,然后可以将它传递给客户端开发人员来扩展框架中的类,并在他们执行特定于上下文的东西时实现他们的具体类.

管理员可以向正在等待任务的组件发送通知.现在在AbstractManager我有一个方法调用registerClient(Messenger m),其中客户端可以将自己注册为侦听器,以便他们可以知道任务何时完成.

现在,如果我想保持抽象,我不能说它是一个Messenger对象,每个应用程序和平台可能使用不同的通知实现.我如何设计这个registerClient可以以任何方式实现?

java frameworks design-patterns

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

为什么在ubuntu linux中用于c ++的g ++编译器中局部变量初始化为0?

根据c ++上的任何一本书,任何未初始化的c ++局部变量都将包含一个垃圾值.但是,请查看以下程序:

#include<iostream>
using namespace std;
float a;
class A
{
public:
float b;
};
int main()
{
float c;
static float d;
static float e = 0;
A f;
cout<<"\n global a : "<<a<<"\n class variable b : "<<f.b;
cout<<"\n local c : "<<c<<"\n static local d : "<<d
<<"\n static initialized local e : "<<e;
}
Run Code Online (Sandbox Code Playgroud)

如果在ubuntu linux上使用g ++编译,它会提供以下输出:

global a : 0
class variable b : 6.94896e-36
local c : 0
static local d : 0 …
Run Code Online (Sandbox Code Playgroud)

c++

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

构造函数错误的参数数量

首先,我很抱歉在如此复杂的地方提出这么简单的问题.我正在编写一个用于解析文本文件的一次性应用程序.它是一个具有典型静态Main()的控制台应用程序.

我已经宣布了另一个类.由于操作的性质,我省略了get/set(它将被使用一次......永远不会再次使用).

public class Entry
{
    public List<string> numbers;
    public string rm;
    public string time;
    public string desc;

    Entry(List<string> n, string r, string t, string d)
    {
        numbers = n;
        rm = r;
        time = t;
        desc = d;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下语句在Main()中实例化类时:

Entry newEntry = new Entry(numbers, rn, time, desc);
Run Code Online (Sandbox Code Playgroud)

我收到的错误是Entry没有一个带有4个参数的构造函数.传递的所有变量都与构造函数定义类型匹配.我睡眠不足,很困惑.我究竟做错了什么?

谢谢,抱歉这个愚蠢的问题.

c# constructor arguments

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

C中的多暗阵列

有人可以告诉我这里有什么问题吗?

int arr[15][1];
int main()
{
  int x;
  for(x=0; x<15; x++)
  {
    arr[x][0] = x;   
    arr[x][1] = x;    
  }  
  int y;
  for(y=0; y<15; y++)
  {
    printf("[%d][0]=%u\t", y, arr[y][0]);
    printf("[%d][1]=%u\n", y, arr[y][1]);
  }
}
Run Code Online (Sandbox Code Playgroud)

它给了我下面的输出,我无法弄清楚什么是错的,而[0] [0]和[0] [1]的输出应该是0,0等等其余部分?

[0][0]=0                [0][1]=1
[1][0]=1                [1][1]=2
[2][0]=2                [2][1]=3
[3][0]=3                [3][1]=4
[4][0]=4                [4][1]=5
[5][0]=5                [5][1]=6
[6][0]=6                [6][1]=7
[7][0]=7                [7][1]=8
[8][0]=8                [8][1]=9
[9][0]=9                [9][1]=10
[10][0]=10              [10][1]=11
[11][0]=11              [11][1]=12
[12][0]=12              [12][1]=13
[13][0]=13              [13][1]=14
[14][0]=14              [14][1]=14
Run Code Online (Sandbox Code Playgroud)

c arrays

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