Listing 4

(a)
#if defined(RECLS_PLATFORM_IS_UNIX)
# include <unixstl.h>
# include <unixstl_filesystem_traits.h>
# include <unixstl_glob_sequence.h>
namespace platform_stl = ::unixstl;
#elif defined(RECLS_PLATFORM_IS_WIN32)
# include <winstl.h>
# include <winstl_filesystem_traits.h>
# include <winstl_glob_sequence.h>
namespace platform_stl = ::winstl;
#else /* unrecognised platform */
# error The platform is not recognized
#endif /* platform */


(b)
 ...
class ReclsFileSearchDirectoryNode
{
public:
  typedef platform_stl::filesystem_traits<recls_char_t>       traits_type;
  typedef platform_stl::basic_file_path_buffer<recls_char_t> 
                                                    file_path_buffer_type;
private:
  typedef stlsoft::basic_simple_string<recls_char_t>          string_type;
  ...


(c)
 ...
#if defined(RECLS_PLATFORM_IS_UNIX)
  typedef unixstl::glob_sequence  file_find_sequence_type;
#elif defined(RECLS_PLATFORM_IS_WIN32)
  typedef winstl::basic_findfile_sequence< recls_char_t, traits_type>
                                  file_find_sequence_type;
#else /* unrecognized platform */
# error The platform is not recognized
#endif /* platform */
  ...