boost add_pointer

本文介绍了Boost库中add_pointer模板类的使用方法及其内部实现原理。通过几个示例展示了如何为不同类型的对象添加指针层,适用于多种编程场景。

template <class T>
struct add_pointer
{
   typedef see-below type;
};

type: 和remove_reference<T>::type*类型一样

此模板类的功能是构造一个和TYPEOF(&t)一样的类型,其中T是对象类型

头文件: #include <boost/type_traits/add_pointer.hpp> or #include <boost/type_traits.hpp>

Table 1.13. Examples

Expression

Result Type

add_pointer<int>::type

int*

add_pointer<int const&>::type

int const*

add_pointer<int*>::type

int**

add_pointer<int*&>::type

int**

实现细节:
template <typename T>
struct add_pointer_impl
{
    typedef typename remove_reference<T>::type no_ref_type;
    typedef no_ref_type* type;
};
template< typename T > struct add_pointer
{
    typedef typename add_pointer_impl<T>::type
type;
};
cmake_minimum_required(VERSION 3.10.2) set(TargetName sdmapEncoder) project(${TargetName} LANGUAGES C CXX ) add_definitions("-Wall -g") add_compile_options(-std=c++17) include(GNUInstallDirs) set (CMAKE_C_STANDARD 99) set(CMAKE_POSITION_INDEPENDENT_CODE ON) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../dep/perception/dataset/include ${CMAKE_CURRENT_SOURCE_DIR}/../../dep/perception/map/include ${CMAKE_CURRENT_SOURCE_DIR}/../../include ${CMAKE_CURRENT_SOURCE_DIR}/../../include/common ${CMAKE_CURRENT_SOURCE_DIR}/../../include/preprocess /usr/include/opencv4 /usr/include/eigen3 /usr/include/boost ) find_package(OpenCV 4.5.4 REQUIRED) find_package(Boost 1.78 REQUIRED COMPONENTS json graph) # configure_file( # version.h.in # generated/version.h # @ONLY # ) ################################################################ ################# 1st step, build core file(GLOB_RECURSE SRCS # "${PROJECT_SOURCE_DIR}/src/*.cpp" /home/junwei/Documents/10059959_MY26_ADAS_Urban_ADP_E2E_APP_BAK/autodrive-perception-e2e/src/sdmap_encoder/test_main.cpp /home/junwei/Documents/10059959_MY26_ADAS_Urban_ADP_E2E_APP_BAK/autodrive-perception-e2e/src/preprocess/data_sdmap.cpp ) add_executable(${TargetName} ${SRCS} ) target_link_libraries(${TargetName} PRIVATE ${OpenCV_LIBS} Boost::boost Boost::json Boost::graph ${CMAKE_THREAD_LIBS_INIT} ) target_include_directories(${TargetName} PRIVATE ${OpenCV_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} ) cmakelist中编译带debug信息 带指针等信息的
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值