小编Fle*_*exo的帖子

std :: make_tuple不会引用

我一直在尝试std::tuple与参考文献结合:

#include <iostream>
#include <tuple>

int main() {
  int a,b;
  std::tuple<int&,int&> test(a,b);
  std::get<0>(test) = 1;
  std::get<1>(test) = 2;
  std::cout << a << ":" << b << std::endl;

  // doesn't make ref, not expected
  auto test2 = std::make_tuple(a,b);
  std::get<0>(test2) = -1;
  std::get<1>(test2) = -2;
  std::cout << a << ":" << b << std::endl;

  int &ar=a;
  int &br=b;
  // why does this not make a tuple of int& references? can we force it to notice?
  auto test3 = std::make_tuple(ar,br);
  std::get<0>(test3) …
Run Code Online (Sandbox Code Playgroud)

c++ tuples reference c++11

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

cstdio stdio.h命名空间

我从c ++参考中看到这一行cstdio:

库中的每个元素都在std namespace. 但我尝试了代码:

std::printf("hello world"); 

printf("hello world");
Run Code Online (Sandbox Code Playgroud)

是否真的C++标头将名称放在std和全局名称空间中

c++ header

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

为什么在PHP中-1> null为真

在PHP(5.3.14)中,以下代码返回true:

-1 > null
Run Code Online (Sandbox Code Playgroud)

JavaScript中完全相同的代码返回false.这背后的原因是什么?

php

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

由JRC引擎处理的文档无法在C++堆栈中打开

我用.net4.0在vs2010中创建了一个水晶报告.当我发布网站时,它会抛出错误"由JRC引擎处理的文档无法在C++堆栈中打开".我在服务器上发布了这个网站,我正在尝试从客户端访问它,我确实在app_code中记录了.rpt文件,但又一次得到了同样的错误.所以我创建了一个文件夹wwwroot,在该文件夹中我保存了asp_client和网站文件夹,并给了wwwroot的物理路径.一切正常,除了水晶报告.在.cs文件代码如下:

    ReportDocument rptDoc = new ReportDocument();
    DataSetForCrystalReport ds = new DataSetForCrystalReport();
    DataSetForCrystalReport dsHeader = new DataSetForCrystalReport();
    DataTable dt = new DataTable();
    DataTable dtHeader = new DataTable();
    dt.TableName = "dtBill";
    string ReceiptNo = Request.QueryString["ReceiptNo"];
    dt = getAllOrders(ReceiptNo).Tables[0];
    dtHeader = TblcompanysettingsService.GetOrganizationDetails();
    ds.Tables[1].Merge(dt);
    ds.Tables[2].Merge(dtHeader);
    rptDoc.Load(Server.MapPath("crBill.rpt"));
    rptDoc.SetDataSource(ds);
    CrystalReportViewer1.ReportSource = rptDoc;
Run Code Online (Sandbox Code Playgroud)

堆栈错误的痕迹:

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.]
   CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422

[CrystalReportsException: Load report …
Run Code Online (Sandbox Code Playgroud)

c# asp.net localhost

29
推荐指数
5
解决办法
6万
查看次数

OpenSouce C/C++数学表达式解析器库

我正在寻找一个好的开源数学库,可以做以下事情:

  • 解析数学.表达式"1 + 1*(3/5)"
  • 积分

有人知道这样的事吗?

c++ math

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

为什么C++ lambda在多次调用时比普通函数慢?

我只是试图比较C++ 11中lambda表达式的性能,所以我做了测试 - 计算double值向量中元素的总和.这是实施:

#include <vector>
#include <algorithm>
#include <iostream>
#include <ctime>

#define LOG(x) { std::cout << #x << " = " << (x) << "\n"; }
#define TIME(t) { std::cout << ((double)(clock() - (t)) / CLOCKS_PER_SEC) << " s\n"; }

double sum(const std::vector<double>& v)
{
    double s = 0.0;
    for (auto i = v.cbegin(); i != v.cend(); ++i)
        s += *i;
    return s;
}

int main()
{
    const size_t MAX = 1; // number of tests
    const …
Run Code Online (Sandbox Code Playgroud)

c++ performance lambda c++11

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

用于ARM的Clang Cross编译?

是否可以为ARM处理器设置Clang进行交叉编译?主机可能在x86上(AMD64 - 可能是Ubuntu 12.04),目标是ARM(Raspberry Pi和Pandaboard - 将为每个进行单独的编译),我可能在某些时候也希望交叉编译PowerPC架构?程序源在C中.

c linux arm clang cross-compiling

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

画布上的图像到JPEG文件

我正在画布上绘制2D图像.

我想将画布上显示的图像保存为JPEG文件,我该怎么办?

android jpeg android-canvas

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

是否可以使用openURL打开设置应用程序?

我知道应用可以使用此代码启动其他应用:[[UIApplication sharedApplication] openURL:appUrl];.我知道打开safari和邮件的URL方案,但我做了一些搜索,没有发现settings.app的方案.

iphone settings

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

使用std :: istream_iterator限制std :: copy的范围

我构建了一个最小的工作示例来显示我使用STL迭代器遇到的问题.我正在使用istream_iterator以下内容读取floatss(或其他类型)std::istream:

#include <iostream>
#include <iterator>
#include <algorithm>

int main() {
   float values[4];
   std::copy(std::istream_iterator<float>(std::cin), std::istream_iterator<float>(), values);
   std::cout << "Read exactly 4 floats" << std::endl; // Not true!
}
Run Code Online (Sandbox Code Playgroud)

这将读取所有可能的floatss,直到EOF为values固定大小,4,所以现在显然我想限制范围以避免溢出并准确读取/最多4个值.

使用更多"正常"迭代器(即RandomAccessIterator),提供begin+4的不是你要做的结束:

std::copy(begin, begin+4, out);
Run Code Online (Sandbox Code Playgroud)

准确阅读4个元素.

如何做到这一点std::istream_iterator?显而易见的想法是将呼叫更改std::copy为:

std::copy(std::istream_iterator<float>(std::cin), std::istream_iterator<float>(std::cin)+4, values);
Run Code Online (Sandbox Code Playgroud)

但(相当可以预见)这不编译,没有候选人operator+:

g++ -Wall -Wextra test.cc
test.cc: In function ‘int main()’:
test.cc:7: error: no match for ‘operator+’ in ‘std::istream_iterator<float, char, std::char_traits<char>, long int>(((std::basic_istream<char, std::char_traits<char> >&)(& std::cin))) …
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl istream-iterator

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