diff --git a/src/rose/rose_build_bytecode.cpp b/src/rose/rose_build_bytecode.cpp index 9f4abcad..daf827e9 100644 --- a/src/rose/rose_build_bytecode.cpp +++ b/src/rose/rose_build_bytecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, Intel Corporation + * Copyright (c) 2015-2017, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -248,6 +248,30 @@ struct build_context : boost::noncopyable { rose_group squashable_groups = 0; }; +/** \brief subengine info including built engine and +* corresponding triggering rose vertices */ +struct ExclusiveSubengine { + aligned_unique_ptr nfa; + vector vertices; +}; + +/** \brief exclusive info to build tamarama */ +struct ExclusiveInfo { + // subengine info + vector subengines; + // all the report in tamarama + set reports; + // assigned queue id + u32 queue; + + // workaround a deficiency in the standard (as explained by STL @ MS) we + // need to tell the compiler that ExclusiveInfo is moveable-only by + // deleting the copy cons so that vector doesn't get confused + ExclusiveInfo() = default; + ExclusiveInfo(const ExclusiveInfo &) = delete; + ExclusiveInfo(ExclusiveInfo &&) = default; +}; + } static diff --git a/src/rose/rose_build_exclusive.h b/src/rose/rose_build_exclusive.h index 9cabb1d2..3269dce6 100644 --- a/src/rose/rose_build_exclusive.h +++ b/src/rose/rose_build_exclusive.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Intel Corporation + * Copyright (c) 2017, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -49,23 +49,6 @@ namespace ue2 { -/** brief subengine info including built engine and - * corresponding triggering rose vertices */ -struct ExclusiveSubengine { - aligned_unique_ptr nfa; - std::vector vertices; -}; - -/** \brief exclusive info to build tamarama */ -struct ExclusiveInfo { - // subengine info - std::vector subengines; - // all the report in tamarama - std::set reports; - // assigned queue id - u32 queue; -}; - /** \brief role info structure for exclusive analysis */ template struct RoleInfo {