Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #91331

Re: What is visitor pattern?

From Bonita Montero <Bonita.Montero@gmail.com>
Newsgroups comp.lang.c++
Subject Re: What is visitor pattern?
Date 2023-08-22 05:47 +0200
Organization A noiseless patient Spider
Message-ID <uc1b4g$292ev$1@dont-email.me> (permalink)
References <331cb164-e6b3-4f9b-af8d-ee933abd79b7n@googlegroups.com> <uIsEM.123835$QQFb.6082@fx38.iad> <ubuoig$1ons4$1@dont-email.me> <AXVEM.568386$SuUf.28925@fx14.iad>

Show all headers | View raw


Am 22.08.2023 um 05:28 schrieb Pavel:
> Bonita Montero wrote:
>> You can better do this 
> I suspect we are talking about different "this"es. A design pattern is
> a recipe for solving a problem of a defined class. What is the class of 
> problems that your code intends to demonstrate how to solve?

Visitor pattern and inversion of control is basically the same.

>> with functional programming. If you need
>> a  performant solution you'd pass a function-object of a generic
>> type. If performance is not your concern or not necessary you'd
>> pass a function<>-object.
>> Take this example of a file-listing function for Win32:
>>
>> void fileList( wchar_t const *path, function<bool ( WIN32_FIND_DATAW 
>> const & )> const &fn, DWORD *pdwErr )
>> {
>>      using namespace std;
>>      if( pdwErr )
>>          *pdwErr = NO_ERROR;
>>      wstring fullPath = getAbsolutePath( path );
>>      WIN32_FIND_DATAW fd;
>>      HANDLE hFind = FindFirstFileW( fullPath.c_str(), &fd );
>>      if( hFind == INVALID_HANDLE_VALUE )
>>      {
>>          if( GetLastError() == ERROR_FILE_NOT_FOUND )
>>              return;
>>          if( !pdwErr )
>>              throw system_error( (int)GetLastError(), 
>> system_category(), "FindFirstFileW() failed" );
>>          *pdwErr = GetLastError();
>>          return;
>>      }
>>      invoke_on_destruct closeFind(
>>          [&]()
>>          {
>>              BOOL succ = FindClose( hFind );
>>              assert(succ);
>>          } );
>>      wstring dir( extractDirectory( fullPath.c_str(), false ) );
>>      do
>>          if( wcscmp( fd.cFileName, L"." ) != 0 && wcscmp( 
>> fd.cFileName, L".." ) != 0 && !fn( fd ) )
>>              break;
>>      while( FindNextFileW( hFind, &fd ) );
>>      if( GetLastError() != ERROR_NO_MORE_FILES )
>>      {
>>          if( !pdwErr )
>>              throw system_error( (int)GetLastError(), 
>> system_category(), "FindNextFileW() failed" );
>>          *pdwErr = GetLastError();
>>      }
>> }
> 

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

What is visitor pattern? wij <wyniijj5@gmail.com> - 2023-08-20 06:55 -0700
  Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-20 07:22 -0700
    Re: What is visitor pattern? wij <wyniijj5@gmail.com> - 2023-08-20 19:24 -0700
    Re: What is visitor pattern? wij <wyniijj5@gmail.com> - 2023-08-27 13:13 -0700
      Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-28 00:13 -0700
        Re: What is visitor pattern? wij <wyniijj5@gmail.com> - 2023-08-28 23:18 -0700
  Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-20 14:12 -0400
    Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-20 13:34 -0700
      Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-20 18:01 -0400
        Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-20 21:12 -0700
          Re: What is visitor pattern? Muttley@dastardlyhq.com - 2023-08-21 06:53 +0000
            Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-21 00:10 -0700
              Re: What is visitor pattern? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2023-08-26 21:26 -0700
                Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-26 22:57 -0700
                Re: What is visitor pattern? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2023-08-28 15:07 -0700
          Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-21 22:55 -0400
            Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-21 21:56 -0700
              Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-24 01:38 -0400
                Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-24 04:45 -0700
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-24 23:11 -0400
                Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-25 07:52 -0700
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-26 00:55 -0400
    Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-21 06:18 +0200
      Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-21 23:28 -0400
        Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-22 05:47 +0200
          Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-22 00:11 -0400
            Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-22 14:30 +0200
              Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-24 01:56 -0400
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-24 09:15 +0200
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-24 20:02 -0400
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 05:13 +0200
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-26 01:05 -0400
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 09:24 +0200
                Re: What is visitor pattern? Muttley@dastardlyhq.com - 2023-08-26 08:01 +0000
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 11:29 +0200
                Re: What is visitor pattern? Muttley@dastardlyhq.com - 2023-08-26 15:00 +0000
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 17:08 +0200
                Re: What is visitor pattern? Muttley@dastardlyhq.com - 2023-08-26 15:15 +0000
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 17:24 +0200
                Re: What is visitor pattern? Muttley@dastardlyhq.com - 2023-08-26 15:36 +0000
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 17:39 +0200
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-26 17:26 +0200
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-29 21:44 -0400
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-29 22:14 -0400
                Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-30 06:13 +0200
                Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-30 23:18 -0400
  Re: What is visitor pattern? "Alf P. Steinbach" <alf.p.steinbach@gmail.com> - 2023-08-21 01:17 +0200
    Re: What is visitor pattern? "Alf P. Steinbach" <alf.p.steinbach@gmail.com> - 2023-08-21 01:24 +0200
  Re: What is visitor pattern? Michael S <already5chosen@yahoo.com> - 2023-08-25 05:21 -0700
    Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-25 14:33 +0200
    Re: What is visitor pattern? Öö Tiib <ootiib@hot.ee> - 2023-08-25 08:28 -0700
    Re: What is visitor pattern? Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-08-26 01:17 -0400
  Re: What is visitor pattern? Bonita Montero <Bonita.Montero@gmail.com> - 2023-08-29 19:27 +0200

csiph-web