小编niX*_*man的帖子

如何检查OpenSSL是否支持/使用Intel AES-NI?

请告诉我,如何检查OpenSSL是否支持/使用Intel AES-NI?

openssl aes

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

非静态数据成员初始化者问题

我从主干版GCC-4.7.0构建了MinGW:http://code.google.com/p/mingw-builds/downloads/list

在对此版本的更改的描述中,可以说实现了非静态数据成员初始化程序:http://gcc.gnu.org/gcc-4.7/changes.html

http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm

当我尝试编译这样一个例子时:

#include <iostream>
#include <string>

struct type {
   type()
      :i(33)
   {}

   int i;
   std::string s("string");
};

int main() {
   type t;
   std::cout << t.i << " : " << t.s << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我收到了很多错误,最后这个错误:

main.cpp:16:35:注意:'std :: string(type :: )(int){aka std :: basic_string(type ::)(int)}'不是从'const std :: basic_string <派生的_CharT,_Traits,_Alloc>'main.cpp:16:35:注意:无法解析重载函数't.type :: s'中的地址

但根据文档,代码是正确的.

c++ c++11

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

如何在asio :: buffer()中使用std :: string

当我尝试使用带有boost :: asio :: buffer的std :: string时,我收到以下错误消息:

boost/asio/detail/consume_buffers.hpp:在构造函数'boost :: asio :: detail :: consume_buffers <boost :: asio :: mutable_buffer,boost :: asio :: const_buffers_1

:: consume_buffers(const boost :: asio :: const_buffers_1&)':boost/asio/impl/read.hpp:140:25:
从'boost :: asio :: detail :: read_op <boost :: asio ::实例化basic_stream_socket,boost :: asio :: const_buffers_1,boost :: asio :: detail :: transfer_all_t,boost :: _ bi :: bind_t <void,boost :: _ mfi :: mf1,boost :: _ bi :: list2,boost :: arg <1>(*)()>

:: read_op(boost :: asio :: basic_stream_socket&,const boost :: asio :: …

buffer boost boost-asio

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

编译时字符串哈希

我需要使用一个字符串作为ID来获取一些对象.在运行时实现这一点,并且运行良好.但由于显而易见的原因,这使得静态类型检查变得不可能.

我用Google搜索了在编译时计算字符串的哈希和的算法:使用Boost.MPL进行C++编译时字符串哈希.

它似乎是我的问题的完美解决方案,除了算法所必需的sring应该被分成4个字符或逐个字符,显而易见的原因.

即,而不是通常的ID的当前记录,我将不得不这样写:

hash_cstring<boost::mpl::string<'obje', 'ct.m', 'etho', 'd'>>::value
Run Code Online (Sandbox Code Playgroud)

这绝对无法使用.

问题是,如何正确传递诸如"object.method"此算法的字符串?

谢谢你们.

c++ hash boost metaprogramming

12
推荐指数
2
解决办法
4142
查看次数

与libwinpthread静态链接

我尝试使用静态链接工具链库构建程序.我通过:

LDFLAGS="-Wl,-Bstatic -lwinpthread -Wl,-Bdynamic -static-libgcc -static-libstdc++"
Run Code Online (Sandbox Code Playgroud)

但程序与共享相关联libwinpthread-1.dll.

我做错了什么?

我得到静态链接libwinpthreads的唯一方法是传递-staticLDFLAGS.但它打破了插件系统的构建程序.

我使用MinGW-builds项目中的mingw-w64 + GCC-4.7.2:http://sourceforge.net/projects/mingwbuilds/

mingw static-linking mingw-w64

8
推荐指数
2
解决办法
8119
查看次数

如何在不关闭套接字的情况下取消异步读/写?

如何在不关闭套接字的情况下取消异步读/写?我使用boost.asio.谢谢.

c++ boost-asio

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

我如何获得操作系统提供的dlopen()/ dlsym()的地址

我需要为dlsym()和dlopen()系统调用实现钩子.为了从钩子调用原始的dlsym(),我需要获取这个系统调用的地址.我尝试在so-library-constructor-function中获取地址.但我只得到钩子函数的地址.我试图指定为RTLD_DEFAULT的处理程序,以及RTLD_NEXT.使用RTLD_DEFAULT时,我得到NULL.使用RTLD_NEXT时,我得到了钩子函数的地址.dlopen()我不能用于同样的原因,因为我在dlopen()上有钩子.

请告诉我,如何获取原始dlopen()和dlsym()函数的地址?

谢谢.

c linux hook libc

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

boost :: asio :: io_service :: poll()带来的麻烦

以下代码:

/***************************************************************************/

boost::mutex m;

struct func {
   func(int v):n(v) {}
   void operator()() {
      {  boost::mutex::scoped_lock l(m);
         std::cout << "run function " << n << std::endl;
      }
      for ( int idx = 0; idx < 4; ++idx ) {
         {  boost::mutex::scoped_lock l(m);
            std::cout << "function " << n << ", ping " << idx << std::endl;
         }
         sleep(1);
      }
   }

private:
   int n;
};

/***************************************************************************/

int main(int argv, const char** argc) {
   boost::asio::io_service io;

   for ( int idx = 0; idx …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-asio

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

concatenate boost :: mpl :: string

我如何连接boost :: mpl :: string?以下代码产生错误:

#include <iostream>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/string.hpp>
#include <boost/mpl/fold.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/push_back.hpp>

typedef boost::mpl::vector<
   boost::mpl::string<'ab'>,
   boost::mpl::string<'cd'>,
   boost::mpl::string<'ef'>
> slist;

typedef boost::mpl::fold<
   slist,
   boost::mpl::string<>,
   boost::mpl::push_back<boost::mpl::_1, boost::mpl::_2>
>::type string;

int main() {
   std::cout << boost::mpl::c_str<string>::value << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

完整来源:http://liveworkspace.org/code/31902a4b1b0831d054119bc0b8923cb6 错误:

在source.cpp中包含的文件中:3:0:string.hpp:在'boost :: mpl :: push_back_impl <boost :: mpl :: string_tag的实例化中

:: apply,boost :: mpl :: string <24930 >>':boost/mpl/push_back.hpp:32:1:
从'boost :: mpl :: push_back <boost :: mpl :: string <>实例化, boost :: mpl :: string …

c++ string boost boost-mpl

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

用户定义的可变参数字符模板的文字

最近,在gcc-trunk中实现了"用户定义的文字".请告诉我,我是否正确理解我无法为可变参数字符模板定义"用户定义的文字"?

template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << "method"_call;
Run Code Online (Sandbox Code Playgroud)

向上.

我不明白为什么允许这个表达式:

template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << 12345566_call;
Run Code Online (Sandbox Code Playgroud)

这个是不允许的:

template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << method_call;
Run Code Online (Sandbox Code Playgroud)

重点是什么?

向上. 这是因为含糊不清?

谢谢.

c++ variadic-templates c++11

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

有没有办法确定纯函数?

我需要能够定义函数以在函数尝试更改全局变量时接收错误消息.

我能做到吗?

bash

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

关于C++预处理器的几个问题:

关于C++预处理器的一些问题:

  1. 如何让预处理器进入预处理代码的新行?
  2. 如何让预处理器在预处理代码中插入制表符或多个空格?
  3. 如何让预处理器在预处理代码中插入注释?

c++ c-preprocessor

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