反射 可以避免开工厂函数,实现自动注册,避免写繁琐的工厂函数代码 #include <iostream>#include <unordered_map>#include <cxxabi.h>namespace cpputil {namespace reflection {// 获取typeid(T).name()拿到的是被编码的内容,用__cxa_demangle可以得到命名空间下的名字template <typename T>std::string get_type_name() { char *demangle_name = abi::__cxa_demangle(typeid(T).name(), nullptr, nullptr, nullptr); if(demangle_name) { std::string ret(demangle_name); free(demangle_name); return ret; } return "";}// Args用于展开构造函数的不同参数namespace {// 利用空命名
C++
发表于 2019-02-16 03:16:10 | 条评论 | 阅读次数:170
上次被网易面试官怼的好惨,,决定认真学一下linux网络编程 详解 有用的结构体 有用的socket函数 有用的辅助函数 代码 socket tcp ipv4服务端代码 socket tcp ipv4客户端代码 详解 有用的结构体 TODO 有用的socket函数 TODO 有用的辅助函数 TODO 代码 socket tcp ipv4服务端代码 因为使用了pthread,所以编译时参数需要加-pthread cmake文件 cmake_minimum_required(VERSION 3.7)project(SocketServer)set(CMAKE_CXX_STANDARD 11)set(SOURCE_FILES main.cpp)set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")add_executable(SocketServer ${SOURCE_FILES}) #include <string>#include <string.h>#include
C++
发表于 2017-09-09 23:52:44 | 条评论 | 阅读次数:613
Copyright © 2017 - 2019 qwb's blog
blog.csustacm.com All Rights Reserved
Powered by qwb Contact me