标签: compiler-errors

编译器错误C3493:无法隐式捕获'func',因为未指定默认捕获模式

你能帮我解决这个编译错误吗?

template<class T>
static void ComputeGenericDropCount(function<void(Npc *, int)> func)
{
    T::ForEach([](T *what) {
        Npc *npc = Npc::Find(what->sourceId);

        if(npc)
            func(npc, what->itemCount); // <<<<<<< ERROR HERE
            // Error    1   error C3493: 'func' cannot be implicitly captured because no default capture mode has been specified

    });
}

static void PreComputeNStar()
{
     // ...
    ComputeGenericDropCount<DropSkinningNpcCount>([](Npc *npc, int i) { npc->nSkinned += i; });
    ComputeGenericDropCount<DropHerbGatheringNpcCount>([](Npc *npc, int i) { npc->nGathered += i; });
    ComputeGenericDropCount<DropMiningNpcCount>([](Npc *npc, int i) { npc->nMined += i; });
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它给我错误,我不知道如何解决它.ComputeGenericDropCount(auto …

c++ compiler-errors visual-studio-2010 visual-studio c++11

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

为什么对基类的赋值有效,但是对派生类的赋值是编译错误?

这是一个面试问题.考虑以下:

struct A {}; 
struct B : A {}; 
A a; 
B b; 
a = b;
b = a; 
Run Code Online (Sandbox Code Playgroud)

为什么b = a;抛出错误,虽然a = b;完全没问题?

c++ inheritance compiler-errors

38
推荐指数
3
解决办法
1561
查看次数

QVision Widget编译时出错

只有一个错误,直到我将其用于我的研究!

Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui
Run Code Online (Sandbox Code Playgroud)

它附带没有行号.我试图找到,但没有看到一个开放式的部分.

我该怎么做才能正确编译这个库?

qt compiler-errors widget qwidget

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

为什么我收到ifstream错误?

Implicit instantiation of undefined template 'std::basic_ifstream<char,std::char_traits<char>>'


#ifndef MAPPER_H
#define MAPPER_H
#include <iostream>
#include <string>
#include <vector>
#include "KeyValue.h"
#include "Parser.h"

using namespace std;
class Mapper
{
public:
    Mapper(ifstream& infile);
    ~Mapper(void);
    void loadTokens();
    void showTokens();
    void map();
    void printMap();
    void printMap(string map_fileName);
private:
    ifstream inFile;  //<-- is where the error is happening
    vector<string> tokens;
    vector<KeyValue> map_output;
    Parser* parser;
};

#endif
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过推杆std::ifstream但它仍然无效.

当我#include <fstream>代替的#include <iostream>,我在得到这些错误fstream.tccbasic_ios.tcc:

'operator=' is a private member of 'std::basic_streambuf<char>' …

c++ fstream compiler-errors ifstream

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

"无法编译连接:"错误是什么意思?

我从Xcode收到以下错误:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x401538380
<IBProxyObject: 0x40154a260> => categoryPicker => <IBUIPickerView: 0x4016de1e0>>
Run Code Online (Sandbox Code Playgroud)

我已经将它缩小到故事板中的单个插座连接.我的代码(大约30个具有许多其他连接的视图)编译并运行正常,直到我从UIPicker添加到视图的categoryPicker属性的连接.选择器本身也工作正常,我只是无法重新加载它没有得到这个连接工作:

@interface FiltersTableViewController : UITableViewController <UIPickerViewDataSource, UIPickerViewDelegate> {
    NSFetchedResultsController *fetchedResultsController;
    FilterTableViewController *filterView;

    AppDelegate *appDelegate;
    NSManagedObjectContext *managedObjectContext;       
}

@property (nonatomic, strong) FilterTableViewController *filterView;
@property (nonatomic, strong) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;

@property (nonatomic, weak) IBOutlet UIPickerView *categoryPicker;

- (void)configureCell:(FilterTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
- (void)performFetch;

@end
Run Code Online (Sandbox Code Playgroud)

UIPickerView位于UITableViewCell中.这是故事板的图像,从"categoryPicker"到"FiltersTableViewController"的连接导致错误: 在此输入图像描述

感谢您提供有关如何调试的任何想法或建议!

编辑:我删除了连接并添加了一行到numberOfComponentsInPickerView:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

    categoryPicker = pickerView;

    return 1;
Run Code Online (Sandbox Code Playgroud)

}

这现在有效!但我想了解为什么连接不起作用以及错误消息的含义.现在这对我来说似乎是一个骗局,因为我在其他地方使用IB连接来获取对象引用.

编辑2:连接原型单元格会产生此错误:非法配置:连接"单元格"不能将原型对象作为其目标.不确定这是否是Xcode 4.5中的新功能.

xcode compiler-errors objective-c storyboard ios

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

C++20 范围太多 | 运营商?

我正在为此代码使用 g++ 10.2。没有任何人知道为什么我得到一个编译错误在过去std::views::reverseresults3

#include <vector>
#include <ranges>

int main() {
    auto values = std::vector{1,2,3,4,5,6,7,8,9,10};
    auto even = [](const auto value) {
        return value % 2 == 0;
    };
    auto square = [](const auto value) {
        return value * value;
    };

    auto results1 = values
        | std::views::filter(even)
        | std::views::reverse
        | std::views::take(4)
        | std::views::reverse;

    auto results2 = values
        | std::views::transform(square)
        | std::views::reverse
        | std::views::take(4)
        | std::views::reverse;

    auto results3 = values
        | std::views::filter(even)
        | std::views::transform(square)
        | std::views::reverse
        | std::views::take(4) …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors c++20 std-ranges

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

编译随机失败:"无法打开程序数据库"

在使用Visual Studio 2005(版本8.0.50727.762)进行长时间编译期间,我有时在某些项目的几个文件中出现以下错误:

fatal error C1033: cannot open program database 'v:\temp\apprtctest\win32\release\vc80.pdb'
Run Code Online (Sandbox Code Playgroud)

(提到的文件是vc80.pdb或者vc80.idb在项目的临时目录中.)

同一个项目的下一个版本成功.没有其他Visual Studio打开可能访问相同的文件.

这是一个严重的问题,因为它使夜间编译变得不可能.

c++ compiler-errors visual-studio-2005 nightly-build visual-studio

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

JNI - "无法打开包含文件:'jni_md.h'"

此示例程序旨在调用native用C编写的方法.

Java代码

class HelloWorld {

    private native void print();

    public static void main( String args[] ) {
        new HelloWorld().print();
    }

    static {
        System.loadLibrary("HelloWorld");
    }

}
Run Code Online (Sandbox Code Playgroud)

写完这个后,我编译了程序并生成了一个JNI样式头文件.

生成的头文件是:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <C:\Program Files\Java\jdk1.7.0\include\jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    print
 * Signature: ()V
 */
 JNIEXPORT void JNICALL Java_HelloWorld_print
 (JNIEnv *, jobject); …
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface compiler-errors

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

命令行使用cl.exe编译?

我试图在不使用IDE的情况下使用Visual Studio Express 2010 C++编译器.我在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin中找到了cl.exe.但是我遇到了一些困难.首先,当我输入cl说"程序无法启动,因为您的计算机中缺少mspdb100.dll"时,它会弹出警告.

所以我将C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE添加到系统路径,然后再试一次,但这一次:

致命错误C1510:无法加载语言资源clui.dll.

任何想法如何解决这个,所以我可以编译?另外,我将如何设置路径,以便我可以在不包含cl.exe的解决方案文件夹中键入"cl main.cpp"等.目前我必须在bin文件夹中.谢谢.

c++ compiler-construction compiler-errors visual-studio-2010

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

"意外的预编译头错误"是什么意思?

我试图构建一个涉及Windows和控制台应用程序的简单解决方案.使用向导生成项目的代码框架后,我没有添加任何代码,只是生成了生成的代码.在这两种情况下我都得到了同样的错误:

1>c:\c\winpr\winpr\winpr.cpp(4) : fatal error C1859: 'Debug\winpr.pch' unexpected precompiled header error, simply rerunning the compiler might fix this problem

有什么不对,有什么想法?

c++ compiler-errors visual-studio-2008

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