在下面的代码中,编译器抱怨为:struct std::array<double,5ul> has no member named 'assign'。,这似乎是可能的。为什么会这样呢?(编译器: g++ 4.8.2)
#include <array>
int main()
{
std::array<double,5> arr;
arr.assign(4.); // error: has no member named 'assign'
return 0;
}
std::tr1::mem_fun.的VS2008 SP1文档
那么为什么,当我尝试使用std::tr1::mem_fun,时,为什么我会得到这个编译错误呢?
'mem_fun' : is not a member of 'std::tr1'
同时,我可以毫无问题地使用std::tr1::function。
下面是我试图编译的示例代码,它应该通过一个TakesInt调用Test实例上的function<void (int)>
#include "stdafx.h"
#include <iostream>
#include
我以前使用过std::bind,我认为这个用法非常接近,但并不完全是这样,我也不知道如何解决编译错误。
最终目标是创建一个指向少量函数的中等大小的指针数组,每个数组元素中有不同的参数。此时,我只有一个函数和一个表条目。如果我能做到这一点,我想我能解决剩下的问题。我想使用std::function,这样就可以将不同的参数放入数组中。
到目前为止,这里有一个函数的声明:
static Get *MakeGArrayStatic(void *Subscript, const void **array, unsigned int sizeOfArray);
下面是数组中典型的单个指针的声明:
type
我使用的是存储库提供的最新版本的GCC。我决定使用它是因为一些额外的C++0x特性。然而,现在我坚持了一些假设可以工作的东西--我想通过r-value添加新的元素到map。简化的代码,它演示了问题:
#include <tr1/unordered_map>
class X
{
public:
X (void) { /* ... */ };
X (const X& x) = delete;
X (X&& x) { /* ... */ };
};
int main (void)
{
std::t
创建一个具有键的unordered_map作为类的shared_ptr。定义基于类的数据成员创建散列的哈希函数。我找不到钥匙。我看到哈希方法是在find操作期间调用的。
// key to be stored in unordered_map
class data {
public:
char c;
int i;
data(char cc,int ii) {
c=cc;i=ii;
}
};
class myhash {
public:
size_t operator()(const std::tr1::shared_ptr
下面是代码: main.hpp的第8行显示错误。
//main.hpp
#ifndef MAIN_HPP // if main.hpp hasn't been included yet...
#define MAIN_HPP // #define this so the compiler knows it has been included
#include <array> // OFFENDING LINE 8
using std:array
class Quicksort {
public:
void sort(array);
};
#endi
我读到了Scott C++,现在我读到了关于接口设计的部分。以下代码应该无效:
std::tr1::shared_ptr<Investment> // attempt to create a null
pInv(0, getRidOfInvestment); // shared_ptr with a custom deleter;
// this won’t compile
他解释如下:
tr1::shared_ptr构造函数坚持它的第一个参数是指针,而0不是指针,而是int。是的,它可以转换为指针,但在这
我必须测试两个三角形是否相似,全等,以及给定的边是否为直角三角形。我已经包含了一个头文件。我试着运行这个程序,但总是得到错误的答案。
标题:
/*
* triangles.h
* Header file for triangle class.
*/
// make sure this file is not included multiple times:
#pragma once
#include <vector>
using std::vector;
class triangle {
public:
// member functions:
是否有可能“部分”填写模板模板参数的参数,而不为每个大小引入新的类或using语句?
我的代码:
#include <vector>
#include <array>
#include <tuple>
struct A { int a = 1; };
struct B { int b = 1; };
struct C { int c = 1; };
template<template<class...> class _Storage, typename... _Components>
struct Foo {
using
我使用inputTy ( std::array (c++11) )定义了一个名为c++11的类型,该数组的维度声明为外部常量整数d。
namespace project {
namespace types{
extern const int d;
typedef std::array<double, d> inputTy;
}
}
为什么我会得到这样的编译错误?
../../include/types.h:16:29: error: the value of ‘d’ is not usable in a constant expression
typede
所以我的教授给了我一个在c++中使用正则表达式的工作。
所以我试着用eclipse写代码(我用的是linux (ubuntu 12.04))。
所以我取了代码:
// regex_search example
#include <iostream>
#include <string>
#include <regex>
int main ()
{
std::string s ("this subject has a submarine as a subsequence");
std::smatch m;
std::regex
说我有这样的东西:
#include <vector>
#include <algorithm>
#include <tr1/functional>
void bar(int value) {
// do something with value
}
void foo() {
// v is a std::vector<int>
std::for_each(v.begin(), v.end(),
std::tr1::bind(&bar, std::tr1::placeholders::_1)); //