首页 > 其他分享 >std::binary_function 未定义问题

std::binary_function 未定义问题

时间:2024-10-10 10:25:29浏览次数:9  
标签:std binary const 未定义 function char using type

使用高版本C++编译器编译旧的SDK的时候,SDK代码中会含有一些已经废弃的函数;如std::binary_function

修改方式:

原始代码:

namespace {

struct NameCompare: std::binary_function <const char *, const char *, bool>
{
    bool
    operator () (const char *x, const char *y) const
    {
    return strcmp (x, y) < 0;
    }
};

修改后:

template<class Arg1, class Arg2, class Result>
struct binary_function
{
    using first_argument_type = Arg1;
    using second_argument_type = Arg2;
    using result_type = Result;
};

template <typename ArgumentType, typename ResultType>
struct unary_function
{
    using argument_type = ArgumentType;
    using result_type = ResultType;
};

namespace {

struct NameCompare: binary_function <const char *, const char *, bool>
{
    bool
    operator () (const char *x, const char *y) const
    {
    return strcmp (x, y) < 0;
    }
};

 

标签:std,binary,const,未定义,function,char,using,type
From: https://www.cnblogs.com/8335IT/p/18455779

相关文章

  • c++基本介绍——std::holds_alternative()的基本介绍
    今天的工作中开发一个新功能,涉及到判断std::variant类型是否等于某个特定的值。就此机会学习一下,std::variant类型和调用std::holds_alternative进行持有值的检查。std::holds_alternative是C++17中引入的标准库函数,用于检查std::variant是否持有特定类型的值。它返回......
  • std::future概念和使用方法
    1概念std::future是C++标准库中<future>头文件提供的一个模板类,用于异步操作的结果获取。它提供了一种访问异步操作结果的机制,通常与std::async、std::packaged_task或std::promise一起使用。异步操作可以在另一个线程中执行,std::future对象允许当前线程在需要的时候获取异......
  • std::bind--改变函数参数的局限
    std::bind是C++标准库中的一个工具,用于将函数对象与部分参数绑定在一起,生成一个新的可调用对象。这使得函数的参数可以被部分或全部提前指定,从而得到一个参数更少甚至无参数的函数对象。在某些情况下,它可以用来延迟执行函数、简化函数调用,或在需要无参函数对象的场景中使用(如线......
  • postman的post方法中Body项里,none,form-data,x-www-form-urlencoded,raw,binary,Grap
    目录1.None2.form-data3.x-www-form-urlencoded4.raw5.binary6.GraphQL总结在Postman中,使用POST方式时,Body项中有几种不同的数据传输方式可供选择,它们之间的主要区别在于数据的格式和编码方式。以下是每种类型的详细解释:1.None描述:不发送请求体(body)。用途:如果你......
  • 解决undefined reference to `google::protobuf::MessageLite::SerializeToString(std
    按照如下步骤安装了proto:https://zhuanlan.zhihu.com/p/631291781但是在后续的protoBuf测试demo中出现了问题 root@e23598ae2d28:/home/lee/Code/protof_test#g++test.cccontacts.pb.cc-otest_proto-lprotobuf-std=c++11-lpthread/tmp/ccbTc1bj.o:Infunction`......
  • `std::future`--异步的优势
    std::future相比于直接使用线程在C++中有几个重要的优势,主要体现在同步结果获取、简化代码管理、以及更安全的异步任务管理等方面。以下是std::future的一些主要优势:1.自动结果获取与同步std::future提供了一种便捷的机制来获取异步任务的返回值。当我们使用线程时,通常......
  • std::packaged_task<返回类型(参数类型)>
    std::packaged_task概述std::packaged_task是C++11引入的标准库模板类,用于包装一个可调用对象(如函数、lambda表达式、函数对象等),使其能够与std::future协同工作。简单来说,它将一个任务(可调用对象)包装起来,并允许你获取该任务的执行结果,这样你可以在一个线程中执行任务,并在......
  • std::make_shared
    std::make_shared是C++11引入的一个标准库函数,用于创建一个std::shared_ptr,并在堆上分配所需的对象。它的功能是将对象的创建和shared_ptr的初始化合并在一起,提高了效率和安全性。使用方法:autoptr=std::make_shared<T>(args...);T:共享指针所管理的对象的类型。a......
  • `std::packaged_task`、`std::thread` 和 `std::async` 的区别与联系
    std::packaged_task、std::thread和std::async的区别与联系std::packaged_task、std::thread和std::async都是C++11中提供的并发工具,用于执行任务并处理多线程操作。虽然它们都有类似的作用(并发执行任务),但在功能和使用方式上有显著区别。下面分别解释它们的特点,并说明它......
  • std::unique_lock
    std::unique_lock是C++11标准库中的一个类,提供了一种灵活的方式来管理互斥量(mutex)。它比std::lock_guard更加灵活,允许在不同的作用域和不同的锁定策略之间进行选择。以下是对unique_lock的详细解释,包括其用途、使用方法和优点。1.定义std::unique_lock是一种RAII(资......