Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Fluent in C++

Fluent in C++

Scheduled Pinned Locked Moved The Lounge
c++databaseperformance
28 Posts 10 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Pete OHanlon

    So, as some of the longer term viewers may know, I used to be a C++ developer; way back in the mists of time. I loved C++ and then the new girl came to town and seduced me with her wiles. No longer would I put up with manual memory management, iterating over for statements when I could use the seductive foreach. Well, I have recently started getting quite heavily back into C++ using the newer additions to the language such as auto and for (auto index : my_vector) as a foreach. The features that are available now are great and C++ really has matured. So much so that I'm using it to write some drone software. I'm a big fan of fluent interfaces so I thought I'd play around and see how they work in C++ to see if I still want to keep with the new C++ and damn it, it's so straightforward.

    #pragma once
    #include <librealsense/rs.hpp>

    class RealSenseStream
    {
    public:
    explicit RealSenseStream(rs::device* device)
    {
    this->device = device;
    }
    ~RealSenseStream()
    {
    }

    RealSenseStream &WithDepth(rs::preset preset)
    {
    device->enable_stream(rs::stream::depth, preset);
    return *this;
    }

    RealSenseStream &WithColor(rs::preset preset)
    {
    device->enable_stream(rs::stream::color, preset);
    return *this;
    }

    private:
    rs::device* device;
    };

    This space for rent

    E Offline
    E Offline
    englebart
    wrote on last edited by
    #18

    All of the input and output operators in old, old C++ offered fluent interfaces. cin >> x >> y; cout << setw(10) << x << setw(12) << y << endl; Ignoring references, you can always just

    return this;

    at the end of a function which requires code like:

    variable->f1(args1)->f2(args2)->f3(args3);

    P 1 Reply Last reply
    0
    • E englebart

      All of the input and output operators in old, old C++ offered fluent interfaces. cin >> x >> y; cout << setw(10) << x << setw(12) << y << endl; Ignoring references, you can always just

      return this;

      at the end of a function which requires code like:

      variable->f1(args1)->f2(args2)->f3(args3);

      P Offline
      P Offline
      Pete OHanlon
      wrote on last edited by
      #19

      I'm happy enough with what I've got now.

      This space for rent

      1 Reply Last reply
      0
      • P Pete OHanlon

        It's a vastly different language to the one I knew. As I have the advantage of writing from scratch, I have the advantage of not having to deal with legacy and cruft. It's a liberating experience.

        This space for rent

        A Offline
        A Offline
        Anna Jayne Metcalfe
        wrote on last edited by
        #20

        It certainly is. :) Thought of coming along to the ACCU Conference? There's a strong C++ track (and sometimes even a C++ Pub Quiz with free beer...) there.

        Anna (@annajayne) Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

        P 1 Reply Last reply
        0
        • A Anna Jayne Metcalfe

          It certainly is. :) Thought of coming along to the ACCU Conference? There's a strong C++ track (and sometimes even a C++ Pub Quiz with free beer...) there.

          Anna (@annajayne) Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

          P Offline
          P Offline
          Pete OHanlon
          wrote on last edited by
          #21

          It depends how serious I get with this drone software. The more I'm playing around with this, the more I love working with drones and I can see me going further with it.

          This space for rent

          A 1 Reply Last reply
          0
          • P Pete OHanlon

            It depends how serious I get with this drone software. The more I'm playing around with this, the more I love working with drones and I can see me going further with it.

            This space for rent

            A Offline
            A Offline
            Anna Jayne Metcalfe
            wrote on last edited by
            #22

            Sounds cool. Have fun!

            Anna (@annajayne) Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

            P 1 Reply Last reply
            0
            • A Anna Jayne Metcalfe

              Sounds cool. Have fun!

              Anna (@annajayne) Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

              P Offline
              P Offline
              Pete OHanlon
              wrote on last edited by
              #23

              I'll be writing this up and posting video footage so you will be able to take a look at least at some of the code. It's really cool stuff.

              This space for rent

              A 1 Reply Last reply
              0
              • P Pete OHanlon

                I'll be writing this up and posting video footage so you will be able to take a look at least at some of the code. It's really cool stuff.

                This space for rent

                A Offline
                A Offline
                Anna Jayne Metcalfe
                wrote on last edited by
                #24

                Look forward to it :)

                Anna (@annajayne) Tech Blog | Visual Lint "Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

                1 Reply Last reply
                0
                • P Pete OHanlon

                  So, as some of the longer term viewers may know, I used to be a C++ developer; way back in the mists of time. I loved C++ and then the new girl came to town and seduced me with her wiles. No longer would I put up with manual memory management, iterating over for statements when I could use the seductive foreach. Well, I have recently started getting quite heavily back into C++ using the newer additions to the language such as auto and for (auto index : my_vector) as a foreach. The features that are available now are great and C++ really has matured. So much so that I'm using it to write some drone software. I'm a big fan of fluent interfaces so I thought I'd play around and see how they work in C++ to see if I still want to keep with the new C++ and damn it, it's so straightforward.

                  #pragma once
                  #include <librealsense/rs.hpp>

                  class RealSenseStream
                  {
                  public:
                  explicit RealSenseStream(rs::device* device)
                  {
                  this->device = device;
                  }
                  ~RealSenseStream()
                  {
                  }

                  RealSenseStream &WithDepth(rs::preset preset)
                  {
                  device->enable_stream(rs::stream::depth, preset);
                  return *this;
                  }

                  RealSenseStream &WithColor(rs::preset preset)
                  {
                  device->enable_stream(rs::stream::color, preset);
                  return *this;
                  }

                  private:
                  rs::device* device;
                  };

                  This space for rent

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #25

                  C++ and MFC; I did everything I could to avoid that sack of shite: Basic Assembler PC COBOL Pascal C Access dBase Paradox VB Clipper FoxPro Visual FoxPro Delphi C# Windows Forms WPF ...

                  P 1 Reply Last reply
                  0
                  • P Pete OHanlon

                    So, as some of the longer term viewers may know, I used to be a C++ developer; way back in the mists of time. I loved C++ and then the new girl came to town and seduced me with her wiles. No longer would I put up with manual memory management, iterating over for statements when I could use the seductive foreach. Well, I have recently started getting quite heavily back into C++ using the newer additions to the language such as auto and for (auto index : my_vector) as a foreach. The features that are available now are great and C++ really has matured. So much so that I'm using it to write some drone software. I'm a big fan of fluent interfaces so I thought I'd play around and see how they work in C++ to see if I still want to keep with the new C++ and damn it, it's so straightforward.

                    #pragma once
                    #include <librealsense/rs.hpp>

                    class RealSenseStream
                    {
                    public:
                    explicit RealSenseStream(rs::device* device)
                    {
                    this->device = device;
                    }
                    ~RealSenseStream()
                    {
                    }

                    RealSenseStream &WithDepth(rs::preset preset)
                    {
                    device->enable_stream(rs::stream::depth, preset);
                    return *this;
                    }

                    RealSenseStream &WithColor(rs::preset preset)
                    {
                    device->enable_stream(rs::stream::color, preset);
                    return *this;
                    }

                    private:
                    rs::device* device;
                    };

                    This space for rent

                    H Offline
                    H Offline
                    hooodaticus
                    wrote on last edited by
                    #26

                    You seem to be retaining the C# coding style, single-file and all :)

                    P 1 Reply Last reply
                    0
                    • H hooodaticus

                      You seem to be retaining the C# coding style, single-file and all :)

                      P Offline
                      P Offline
                      Pete OHanlon
                      wrote on last edited by
                      #27

                      I'm really not. It was just easier to post a sample like that. My real code is spread out.

                      This space for rent

                      1 Reply Last reply
                      0
                      • L Lost User

                        C++ and MFC; I did everything I could to avoid that sack of shite: Basic Assembler PC COBOL Pascal C Access dBase Paradox VB Clipper FoxPro Visual FoxPro Delphi C# Windows Forms WPF ...

                        P Offline
                        P Offline
                        Pete OHanlon
                        wrote on last edited by
                        #28

                        I spent a lot of time in MFC. Then I discovered ATL and wasee hooked until I moved to .NET.

                        This space for rent

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups